Skip to content

Commit 0c2a5f6

Browse files
committed
check in prod dependencies
1 parent f9c1f55 commit 0c2a5f6

File tree

2,999 files changed

+391211
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,999 files changed

+391211
-2
lines changed

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
__tests__/runner/*
22

33
# comment out in distribution branches
4-
node_modules/
5-
lib/
4+
# node_modules/
5+
# lib/
66

77
# Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
88
# Logs

lib/action.js

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
"use strict";
2+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3+
if (k2 === undefined) k2 = k;
4+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5+
}) : (function(o, m, k, k2) {
6+
if (k2 === undefined) k2 = k;
7+
o[k2] = m[k];
8+
}));
9+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10+
Object.defineProperty(o, "default", { enumerable: true, value: v });
11+
}) : function(o, v) {
12+
o["default"] = v;
13+
});
14+
var __importStar = (this && this.__importStar) || function (mod) {
15+
if (mod && mod.__esModule) return mod;
16+
var result = {};
17+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18+
__setModuleDefault(result, mod);
19+
return result;
20+
};
21+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23+
return new (P || (P = Promise))(function (resolve, reject) {
24+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27+
step((generator = generator.apply(thisArg, _arguments || [])).next());
28+
});
29+
};
30+
Object.defineProperty(exports, "__esModule", { value: true });
31+
const core = __importStar(require("@actions/core"));
32+
const semver_1 = require("semver");
33+
const commit_analyzer_1 = require("@semantic-release/commit-analyzer");
34+
const release_notes_generator_1 = require("@semantic-release/release-notes-generator");
35+
const utils_1 = require("./utils");
36+
const github_1 = require("./github");
37+
function main() {
38+
return __awaiter(this, void 0, void 0, function* () {
39+
const defaultBump = core.getInput('default_bump');
40+
const tagPrefix = core.getInput('tag_prefix');
41+
const customTag = core.getInput('custom_tag');
42+
const releaseBranches = core.getInput('release_branches');
43+
const preReleaseBranches = core.getInput('pre_release_branches');
44+
const appendToPreReleaseTag = core.getInput('append_to_pre_release_tag');
45+
const createAnnotatedTag = !!core.getInput('create_annotated_tag');
46+
const dryRun = core.getInput('dry_run');
47+
const customReleaseRules = core.getInput('custom_release_rules');
48+
let mappedReleaseRules;
49+
if (customReleaseRules) {
50+
mappedReleaseRules = utils_1.mapCustomReleaseRules(customReleaseRules);
51+
}
52+
const { GITHUB_REF, GITHUB_SHA } = process.env;
53+
if (!GITHUB_REF) {
54+
core.setFailed('Missing GITHUB_REF.');
55+
return;
56+
}
57+
if (!GITHUB_SHA) {
58+
core.setFailed('Missing GITHUB_SHA.');
59+
return;
60+
}
61+
const currentBranch = utils_1.getBranchFromRef(GITHUB_REF);
62+
const isReleaseBranch = releaseBranches
63+
.split(',')
64+
.some((branch) => currentBranch.match(branch));
65+
const isPreReleaseBranch = preReleaseBranches
66+
.split(',')
67+
.some((branch) => currentBranch.match(branch));
68+
const isPrerelease = !isReleaseBranch && isPreReleaseBranch;
69+
const identifier = appendToPreReleaseTag
70+
? appendToPreReleaseTag
71+
: currentBranch;
72+
const prefixRegex = new RegExp(`^${tagPrefix}`);
73+
const validTags = yield utils_1.getValidTags(prefixRegex);
74+
const latestTag = utils_1.getLatestTag(validTags, prefixRegex);
75+
const latestPrereleaseTag = utils_1.getLatestPrereleaseTag(validTags, identifier, prefixRegex);
76+
const commits = yield utils_1.getCommits(latestTag.commit.sha);
77+
let newVersion;
78+
if (customTag) {
79+
newVersion = customTag;
80+
}
81+
else {
82+
let previousTag;
83+
if (!latestPrereleaseTag) {
84+
previousTag = semver_1.parse(latestTag.name.replace(prefixRegex, ''));
85+
}
86+
else {
87+
previousTag = semver_1.parse(semver_1.gte(latestTag.name.replace(prefixRegex, ''), latestPrereleaseTag.name.replace(prefixRegex, ''))
88+
? latestTag.name.replace(prefixRegex, '')
89+
: latestPrereleaseTag.name.replace(prefixRegex, ''));
90+
}
91+
if (!previousTag) {
92+
core.setFailed('Could not parse previous tag.');
93+
return;
94+
}
95+
core.info(`Previous tag was ${previousTag}.`);
96+
core.setOutput('previous_tag', previousTag.version);
97+
let bump = yield commit_analyzer_1.analyzeCommits({ releaseRules: mappedReleaseRules }, { commits, logger: { log: console.info.bind(console) } });
98+
if (!bump && defaultBump === 'false') {
99+
core.debug('No commit specifies the version bump. Skipping the tag creation.');
100+
return;
101+
}
102+
// If somebody uses custom release rules on a prerelease branch they might create a 'preprepatch' bump.
103+
const preReg = /^pre/;
104+
if (isPrerelease && preReg.test(bump)) {
105+
bump = bump.replace(preReg, '');
106+
}
107+
const releaseType = isPrerelease
108+
? `pre${bump || defaultBump}`
109+
: bump || defaultBump;
110+
const incrementedVersion = semver_1.inc(previousTag, releaseType, identifier);
111+
if (!incrementedVersion) {
112+
core.setFailed('Could not increment version.');
113+
return;
114+
}
115+
if (!semver_1.valid(incrementedVersion)) {
116+
core.setFailed(`${incrementedVersion} is not a valid semver.`);
117+
return;
118+
}
119+
newVersion = incrementedVersion;
120+
}
121+
core.info(`New version is ${newVersion}.`);
122+
core.setOutput('new_version', newVersion);
123+
const newTag = `${tagPrefix}${newVersion}`;
124+
core.info(`New tag after applying prefix is ${newTag}.`);
125+
core.setOutput('new_tag', newTag);
126+
const changelog = yield release_notes_generator_1.generateNotes({}, {
127+
commits,
128+
logger: { log: console.info.bind(console) },
129+
options: {
130+
repositoryUrl: `https://github.com/${process.env.GITHUB_REPOSITORY}`,
131+
},
132+
lastRelease: { gitTag: latestTag.name },
133+
nextRelease: { gitTag: newTag, version: newVersion },
134+
});
135+
core.info(`Changelog is ${changelog}.`);
136+
core.setOutput('changelog', changelog);
137+
if (!isReleaseBranch && !isPreReleaseBranch) {
138+
core.info('This branch is neither a release nor a pre-release branch. Skipping the tag creation.');
139+
return;
140+
}
141+
if (validTags.map((tag) => tag.name).includes(newTag)) {
142+
core.info('This tag already exists. Skipping the tag creation.');
143+
return;
144+
}
145+
if (/true/i.test(dryRun)) {
146+
core.info('Dry run: not performing tag action.');
147+
return;
148+
}
149+
yield github_1.createTag(newTag, createAnnotatedTag, GITHUB_SHA);
150+
});
151+
}
152+
exports.default = main;

lib/github.js

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
"use strict";
2+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3+
if (k2 === undefined) k2 = k;
4+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5+
}) : (function(o, m, k, k2) {
6+
if (k2 === undefined) k2 = k;
7+
o[k2] = m[k];
8+
}));
9+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10+
Object.defineProperty(o, "default", { enumerable: true, value: v });
11+
}) : function(o, v) {
12+
o["default"] = v;
13+
});
14+
var __importStar = (this && this.__importStar) || function (mod) {
15+
if (mod && mod.__esModule) return mod;
16+
var result = {};
17+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18+
__setModuleDefault(result, mod);
19+
return result;
20+
};
21+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23+
return new (P || (P = Promise))(function (resolve, reject) {
24+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27+
step((generator = generator.apply(thisArg, _arguments || [])).next());
28+
});
29+
};
30+
Object.defineProperty(exports, "__esModule", { value: true });
31+
exports.createTag = exports.compareCommits = exports.listTags = exports.getOctokitSingleton = void 0;
32+
const github_1 = require("@actions/github");
33+
const core = __importStar(require("@actions/core"));
34+
let octokitSingleton;
35+
function getOctokitSingleton() {
36+
if (octokitSingleton) {
37+
return octokitSingleton;
38+
}
39+
const githubToken = core.getInput('github_token');
40+
octokitSingleton = github_1.getOctokit(githubToken);
41+
return octokitSingleton;
42+
}
43+
exports.getOctokitSingleton = getOctokitSingleton;
44+
function listTags() {
45+
return __awaiter(this, void 0, void 0, function* () {
46+
const octokit = getOctokitSingleton();
47+
const tags = yield octokit.repos.listTags(Object.assign(Object.assign({}, github_1.context.repo), { per_page: 100 }));
48+
return tags.data;
49+
});
50+
}
51+
exports.listTags = listTags;
52+
function compareCommits(sha) {
53+
return __awaiter(this, void 0, void 0, function* () {
54+
const octokit = getOctokitSingleton();
55+
const commits = yield octokit.repos.compareCommits(Object.assign(Object.assign({}, github_1.context.repo), { base: sha, head: 'HEAD' }));
56+
return commits.data.commits;
57+
});
58+
}
59+
exports.compareCommits = compareCommits;
60+
function createTag(newTag, createAnnotatedTag, GITHUB_SHA) {
61+
return __awaiter(this, void 0, void 0, function* () {
62+
const octokit = getOctokitSingleton();
63+
let annotatedTag = undefined;
64+
if (createAnnotatedTag) {
65+
core.debug(`Creating annotated tag.`);
66+
annotatedTag = yield octokit.git.createTag(Object.assign(Object.assign({}, github_1.context.repo), { tag: newTag, message: newTag, object: GITHUB_SHA, type: 'commit' }));
67+
}
68+
core.debug(`Pushing new tag to the repo.`);
69+
yield octokit.git.createRef(Object.assign(Object.assign({}, github_1.context.repo), { ref: `refs/tags/${newTag}`, sha: annotatedTag ? annotatedTag.data.sha : GITHUB_SHA }));
70+
});
71+
}
72+
exports.createTag = createTag;

lib/main.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
"use strict";
2+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3+
if (k2 === undefined) k2 = k;
4+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5+
}) : (function(o, m, k, k2) {
6+
if (k2 === undefined) k2 = k;
7+
o[k2] = m[k];
8+
}));
9+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10+
Object.defineProperty(o, "default", { enumerable: true, value: v });
11+
}) : function(o, v) {
12+
o["default"] = v;
13+
});
14+
var __importStar = (this && this.__importStar) || function (mod) {
15+
if (mod && mod.__esModule) return mod;
16+
var result = {};
17+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18+
__setModuleDefault(result, mod);
19+
return result;
20+
};
21+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23+
return new (P || (P = Promise))(function (resolve, reject) {
24+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27+
step((generator = generator.apply(thisArg, _arguments || [])).next());
28+
});
29+
};
30+
var __importDefault = (this && this.__importDefault) || function (mod) {
31+
return (mod && mod.__esModule) ? mod : { "default": mod };
32+
};
33+
Object.defineProperty(exports, "__esModule", { value: true });
34+
const core = __importStar(require("@actions/core"));
35+
const action_1 = __importDefault(require("./action"));
36+
function run() {
37+
return __awaiter(this, void 0, void 0, function* () {
38+
try {
39+
yield action_1.default();
40+
}
41+
catch (error) {
42+
core.setFailed(error.message);
43+
}
44+
});
45+
}
46+
run();

lib/ts.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });

lib/utils.js

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
"use strict";
2+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3+
if (k2 === undefined) k2 = k;
4+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5+
}) : (function(o, m, k, k2) {
6+
if (k2 === undefined) k2 = k;
7+
o[k2] = m[k];
8+
}));
9+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10+
Object.defineProperty(o, "default", { enumerable: true, value: v });
11+
}) : function(o, v) {
12+
o["default"] = v;
13+
});
14+
var __importStar = (this && this.__importStar) || function (mod) {
15+
if (mod && mod.__esModule) return mod;
16+
var result = {};
17+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18+
__setModuleDefault(result, mod);
19+
return result;
20+
};
21+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23+
return new (P || (P = Promise))(function (resolve, reject) {
24+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27+
step((generator = generator.apply(thisArg, _arguments || [])).next());
28+
});
29+
};
30+
var __importDefault = (this && this.__importDefault) || function (mod) {
31+
return (mod && mod.__esModule) ? mod : { "default": mod };
32+
};
33+
Object.defineProperty(exports, "__esModule", { value: true });
34+
exports.mapCustomReleaseRules = exports.getLatestPrereleaseTag = exports.getLatestTag = exports.getBranchFromRef = exports.getCommits = exports.getValidTags = void 0;
35+
const core = __importStar(require("@actions/core"));
36+
const semver_1 = require("semver");
37+
// @ts-ignore
38+
const default_release_types_1 = __importDefault(require("@semantic-release/commit-analyzer/lib/default-release-types"));
39+
const github_1 = require("./github");
40+
function getValidTags(prefixRegex) {
41+
return __awaiter(this, void 0, void 0, function* () {
42+
const tags = yield github_1.listTags();
43+
const invalidTags = tags.filter((tag) => !semver_1.valid(tag.name.replace(prefixRegex, '')));
44+
invalidTags.forEach((name) => core.debug(`Found Invalid Tag: ${name}.`));
45+
const validTags = tags
46+
.filter((tag) => semver_1.valid(tag.name.replace(prefixRegex, '')))
47+
.sort((a, b) => semver_1.rcompare(a.name.replace(prefixRegex, ''), b.name.replace(prefixRegex, '')));
48+
validTags.forEach((tag) => core.debug(`Found Valid Tag: ${tag.name}.`));
49+
return validTags;
50+
});
51+
}
52+
exports.getValidTags = getValidTags;
53+
function getCommits(sha) {
54+
return __awaiter(this, void 0, void 0, function* () {
55+
const commits = yield github_1.compareCommits(sha);
56+
return commits
57+
.filter((commit) => !!commit.commit.message)
58+
.map((commit) => ({
59+
message: commit.commit.message,
60+
hash: commit.sha,
61+
}));
62+
});
63+
}
64+
exports.getCommits = getCommits;
65+
function getBranchFromRef(ref) {
66+
return ref.replace('refs/heads/', '');
67+
}
68+
exports.getBranchFromRef = getBranchFromRef;
69+
function getLatestTag(tags, prefixRegex) {
70+
return (tags.find((tag) => !semver_1.prerelease(tag.name.replace(prefixRegex, ''))) || {
71+
name: '0.0.0',
72+
commit: {
73+
sha: 'HEAD',
74+
},
75+
});
76+
}
77+
exports.getLatestTag = getLatestTag;
78+
function getLatestPrereleaseTag(tags, identifier, prefixRegex) {
79+
return tags
80+
.filter((tag) => semver_1.prerelease(tag.name.replace(prefixRegex, '')))
81+
.find((tag) => tag.name.replace(prefixRegex, '').match(identifier));
82+
}
83+
exports.getLatestPrereleaseTag = getLatestPrereleaseTag;
84+
function mapCustomReleaseRules(customReleaseTypes) {
85+
const releaseRuleSeparator = ',';
86+
const releaseTypeSeparator = ':';
87+
return customReleaseTypes
88+
.split(releaseRuleSeparator)
89+
.map((customReleaseRule) => customReleaseRule.split(releaseTypeSeparator))
90+
.filter((customReleaseRule) => {
91+
if (customReleaseRule.length !== 2) {
92+
core.warning(`${customReleaseRule.join(releaseTypeSeparator)} is not a valid custom release definition.`);
93+
return false;
94+
}
95+
return true;
96+
})
97+
.map((customReleaseRule) => {
98+
const [keyword, release] = customReleaseRule;
99+
return {
100+
type: keyword,
101+
release,
102+
};
103+
})
104+
.filter((customRelease) => {
105+
if (!default_release_types_1.default.includes(customRelease.release)) {
106+
core.warning(`${customRelease.release} is not a valid release type.`);
107+
return false;
108+
}
109+
return true;
110+
});
111+
}
112+
exports.mapCustomReleaseRules = mapCustomReleaseRules;

0 commit comments

Comments
 (0)