autorel 2.3.2 → 2.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/autorel.d.ts +2 -0
- package/dist/autorel.js +115 -0
- package/dist/getNextTag.d.ts +9 -0
- package/dist/getNextTag.js +40 -0
- package/dist/getTags.d.ts +6 -0
- package/dist/getTags.js +60 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -139
- package/dist/runUserPrereleaseScripts.d.ts +2 -0
- package/dist/runUserPrereleaseScripts.js +18 -0
- package/dist/runUserReleaseScripts.d.ts +2 -0
- package/dist/runUserReleaseScripts.js +27 -0
- package/dist/services/git.d.ts +1 -0
- package/dist/services/git.js +6 -1
- package/dist/validateUseVersion.d.ts +2 -0
- package/dist/validateUseVersion.js +25 -0
- package/package.json +1 -1
package/dist/autorel.js
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.autorel = void 0;
|
|
30
|
+
/* eslint-disable max-lines-per-function */
|
|
31
|
+
const convCom = __importStar(require("./conventionalcommits"));
|
|
32
|
+
const git = __importStar(require("./services/git"));
|
|
33
|
+
const npm = __importStar(require("./services/npm"));
|
|
34
|
+
const changelog_1 = require("./changelog");
|
|
35
|
+
const github = __importStar(require("./services/github"));
|
|
36
|
+
const logger_1 = __importDefault(require("./lib/logger"));
|
|
37
|
+
const updatePackageJsonVersion_1 = require("./updatePackageJsonVersion");
|
|
38
|
+
const colorette_1 = require("colorette");
|
|
39
|
+
const getPrereleaseChannel_1 = require("./getPrereleaseChannel");
|
|
40
|
+
const getTags_1 = require("./getTags");
|
|
41
|
+
const validateUseVersion_1 = require("./validateUseVersion");
|
|
42
|
+
const getNextTag_1 = require("./getNextTag");
|
|
43
|
+
const runUserReleaseScripts_1 = require("./runUserReleaseScripts");
|
|
44
|
+
const runUserPrereleaseScripts_1 = require("./runUserPrereleaseScripts");
|
|
45
|
+
async function autorel(args) {
|
|
46
|
+
const prereleaseChannel = (0, getPrereleaseChannel_1.getPrereleaseChannel)(args);
|
|
47
|
+
if (args.dryRun) {
|
|
48
|
+
logger_1.default.warn('Running in dry-run mode. No changes will be made.');
|
|
49
|
+
}
|
|
50
|
+
if (prereleaseChannel && !args.useVersion) {
|
|
51
|
+
const stmt = `Using prerelease channel: ${(0, colorette_1.bold)(prereleaseChannel)}`;
|
|
52
|
+
logger_1.default.info(!args.useVersion ? stmt : (0, colorette_1.strikethrough)(stmt));
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
const stmt = 'This is a production release.';
|
|
56
|
+
logger_1.default.info(!args.useVersion ? stmt : (0, colorette_1.strikethrough)(stmt));
|
|
57
|
+
}
|
|
58
|
+
git.gitFetch();
|
|
59
|
+
const { highestTag, highestChannelTag, highestStableTag, tagFromWhichToFindCommits, } = (0, getTags_1.getTags)(prereleaseChannel);
|
|
60
|
+
const commits = git.getCommitsFromTag(tagFromWhichToFindCommits);
|
|
61
|
+
logger_1.default.info(`Found ${(0, colorette_1.bold)(commits.length.toString())} commit(s).`);
|
|
62
|
+
const parsedCommits = commits.map((commit) => convCom.parseConventionalCommit(commit.message, commit.hash))
|
|
63
|
+
.filter((commit) => !!commit);
|
|
64
|
+
const commitTypeMap = new Map(args.commitTypes.map((type) => [type.type, type]));
|
|
65
|
+
const releaseType = convCom.determineReleaseType(parsedCommits, commitTypeMap);
|
|
66
|
+
const releaseTypeStr = (releaseType === 'none' && (0, colorette_1.gray)('none'))
|
|
67
|
+
|| (releaseType === 'major' && (0, colorette_1.redBright)('major'))
|
|
68
|
+
|| (releaseType === 'minor' && (0, colorette_1.yellowBright)('minor'))
|
|
69
|
+
|| (releaseType === 'patch' && (0, colorette_1.greenBright)('patch'));
|
|
70
|
+
logger_1.default.info(`The release type is: ${(0, colorette_1.bold)(String(releaseTypeStr))}`);
|
|
71
|
+
if (releaseType === 'none' && !args.useVersion) {
|
|
72
|
+
logger_1.default.info('No release is needed. Have a nice day (^_^)/');
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
(0, validateUseVersion_1.validateUseVersion)(args.useVersion, releaseType);
|
|
76
|
+
const nextTag = (0, getNextTag_1.getNextTag)({
|
|
77
|
+
releaseType,
|
|
78
|
+
highestTag,
|
|
79
|
+
highestStableTag,
|
|
80
|
+
highestChannelTag,
|
|
81
|
+
useVersion: args.useVersion,
|
|
82
|
+
prereleaseChannel,
|
|
83
|
+
});
|
|
84
|
+
const changelog = (0, changelog_1.generateChangelog)(parsedCommits, commitTypeMap, args.breakingChangeTitle);
|
|
85
|
+
logger_1.default.info(`The next version is: ${(0, colorette_1.bold)(nextTag)}`);
|
|
86
|
+
logger_1.default.debug(`The changelog is:\n${changelog}`);
|
|
87
|
+
if (args.dryRun)
|
|
88
|
+
return;
|
|
89
|
+
(0, runUserPrereleaseScripts_1.runUserPreleaseScripts)(args);
|
|
90
|
+
git.createAndPushTag(nextTag);
|
|
91
|
+
const { owner, repository } = git.getRepo();
|
|
92
|
+
// publish to GitHub
|
|
93
|
+
if (!args.skipRelease) {
|
|
94
|
+
github.createRelease({
|
|
95
|
+
token: process.env.GITHUB_TOKEN,
|
|
96
|
+
owner,
|
|
97
|
+
repository,
|
|
98
|
+
tag: nextTag,
|
|
99
|
+
name: nextTag,
|
|
100
|
+
body: changelog,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
// publish to npm
|
|
104
|
+
if (args.publish) {
|
|
105
|
+
(0, updatePackageJsonVersion_1.updatePackageJsonVersion)(nextTag);
|
|
106
|
+
npm.publishPackage(prereleaseChannel);
|
|
107
|
+
}
|
|
108
|
+
// set env variables
|
|
109
|
+
process.env.NEXT_VERSION = nextTag.replace('v', '');
|
|
110
|
+
process.env.NEXT_TAG = nextTag;
|
|
111
|
+
(0, runUserReleaseScripts_1.runUserReleaseScripts)(args);
|
|
112
|
+
return nextTag.replace('v', '');
|
|
113
|
+
}
|
|
114
|
+
exports.autorel = autorel;
|
|
115
|
+
//# sourceMappingURL=autorel.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReleaseType } from './semver';
|
|
2
|
+
export declare function getNextTag({ highestTag, highestStableTag, highestChannelTag, useVersion, prereleaseChannel, releaseType, }: {
|
|
3
|
+
highestTag: string | undefined;
|
|
4
|
+
highestStableTag: string | undefined;
|
|
5
|
+
highestChannelTag: string | undefined;
|
|
6
|
+
useVersion: string | undefined;
|
|
7
|
+
prereleaseChannel: string | undefined;
|
|
8
|
+
releaseType: ReleaseType;
|
|
9
|
+
}): string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.getNextTag = void 0;
|
|
27
|
+
const semver = __importStar(require("./semver"));
|
|
28
|
+
function getNextTag({ highestTag, highestStableTag, highestChannelTag, useVersion, prereleaseChannel, releaseType, }) {
|
|
29
|
+
return useVersion
|
|
30
|
+
? `v${useVersion}`
|
|
31
|
+
: semver.toTag(semver.incrVer({
|
|
32
|
+
latestVer: semver.fromTag(highestTag || 'v0.0.0'),
|
|
33
|
+
latestStableVer: semver.fromTag(highestStableTag || 'v0.0.0'),
|
|
34
|
+
releaseType,
|
|
35
|
+
prereleaseChannel,
|
|
36
|
+
latestChannelVer: highestChannelTag ? semver.fromTag(highestChannelTag) ?? undefined : undefined,
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
exports.getNextTag = getNextTag;
|
|
40
|
+
//# sourceMappingURL=getNextTag.js.map
|
package/dist/getTags.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.getTags = void 0;
|
|
30
|
+
const git = __importStar(require("./services/git"));
|
|
31
|
+
const semver = __importStar(require("./semver"));
|
|
32
|
+
const logger_1 = __importDefault(require("./lib/logger"));
|
|
33
|
+
const colorette_1 = require("colorette");
|
|
34
|
+
function getTags(prereleaseChannel) {
|
|
35
|
+
const recentTags = git.getRecentTags();
|
|
36
|
+
const highestTag = semver.highestTag(recentTags);
|
|
37
|
+
const highestStableTag = semver.highestStableTag(recentTags);
|
|
38
|
+
const highestChannelTag = prereleaseChannel
|
|
39
|
+
? semver.highestChannelTag(recentTags, prereleaseChannel)
|
|
40
|
+
: undefined;
|
|
41
|
+
// Determine the starting Git tag to compare against when generating
|
|
42
|
+
// release notes or changelogs (i.e. the point “since” which to find commits).
|
|
43
|
+
// If a pre-release channel is specified, and that channel has a tag, and
|
|
44
|
+
// it is higher than the stable tag, use that tag. Otherwise, use the stable tag.
|
|
45
|
+
const tagFromWhichToFindCommits = highestChannelTag
|
|
46
|
+
? semver.highestTag([highestChannelTag, highestStableTag ?? 'v0.0.0'])
|
|
47
|
+
: highestStableTag;
|
|
48
|
+
!!highestChannelTag && logger_1.default.info(`The last pre-release channel version (${prereleaseChannel}) is: ${(0, colorette_1.bold)(highestChannelTag)}`);
|
|
49
|
+
logger_1.default.info(`The last stable/production version is: ${highestStableTag ? (0, colorette_1.bold)(highestStableTag) : (0, colorette_1.gray)('none')}`);
|
|
50
|
+
logger_1.default.info(`The current/highest version is: ${highestTag ? (0, colorette_1.bold)(highestTag) : (0, colorette_1.gray)('none')}`);
|
|
51
|
+
logger_1.default.info(`Fetching commits since ${tagFromWhichToFindCommits ?? 'the beginning of the repository'}...`);
|
|
52
|
+
return {
|
|
53
|
+
highestTag,
|
|
54
|
+
highestStableTag,
|
|
55
|
+
highestChannelTag,
|
|
56
|
+
tagFromWhichToFindCommits,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
exports.getTags = getTags;
|
|
60
|
+
//# sourceMappingURL=getTags.js.map
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -10,149 +10,11 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
26
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
15
|
};
|
|
28
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
29
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
30
|
-
};
|
|
31
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.autorel = void 0;
|
|
33
|
-
/* eslint-disable max-lines-per-function */
|
|
34
|
-
const semver = __importStar(require("./semver"));
|
|
35
|
-
const convCom = __importStar(require("./conventionalcommits"));
|
|
36
|
-
const git = __importStar(require("./services/git"));
|
|
37
|
-
const npm = __importStar(require("./services/npm"));
|
|
38
|
-
const changelog_1 = require("./changelog");
|
|
39
|
-
const github = __importStar(require("./services/github"));
|
|
40
|
-
const logger_1 = __importDefault(require("./lib/logger"));
|
|
41
|
-
const updatePackageJsonVersion_1 = require("./updatePackageJsonVersion");
|
|
42
|
-
const sh_1 = require("./services/sh");
|
|
43
|
-
const colorette_1 = require("colorette");
|
|
44
|
-
const getPrereleaseChannel_1 = require("./getPrereleaseChannel");
|
|
45
|
-
async function autorel(args) {
|
|
46
|
-
const prereleaseChannel = (0, getPrereleaseChannel_1.getPrereleaseChannel)(args);
|
|
47
|
-
if (args.dryRun) {
|
|
48
|
-
logger_1.default.warn('Running in dry-run mode. No changes will be made.');
|
|
49
|
-
}
|
|
50
|
-
if (prereleaseChannel && !args.useVersion) {
|
|
51
|
-
const stmt = `Using prerelease channel: ${(0, colorette_1.bold)(prereleaseChannel)}`;
|
|
52
|
-
logger_1.default.info(!args.useVersion ? stmt : (0, colorette_1.strikethrough)(stmt));
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
const stmt = 'This is a production release.';
|
|
56
|
-
logger_1.default.info(!args.useVersion ? stmt : (0, colorette_1.strikethrough)(stmt));
|
|
57
|
-
}
|
|
58
|
-
const commitTypeMap = new Map(args.commitTypes.map((type) => [type.type, type]));
|
|
59
|
-
git.gitFetch();
|
|
60
|
-
const recentTags = git.getRecentTags();
|
|
61
|
-
const highestTag = semver.highestTag(recentTags);
|
|
62
|
-
const highestStableTag = semver.highestStableTag(recentTags);
|
|
63
|
-
const highestChannelTag = prereleaseChannel
|
|
64
|
-
? semver.highestChannelTag(recentTags, prereleaseChannel)
|
|
65
|
-
: undefined;
|
|
66
|
-
// Determine the starting Git tag to compare against when generating
|
|
67
|
-
// release notes or changelogs (i.e. the point “since” which to find commits).
|
|
68
|
-
// If a pre-release channel is specified, and that channel has a tag, and
|
|
69
|
-
// it is higher than the stable tag, use that tag. Otherwise, use the stable tag.
|
|
70
|
-
const tagFromWhichToFindCommits = highestChannelTag
|
|
71
|
-
? semver.highestTag([highestChannelTag, highestStableTag ?? 'v0.0.0'])
|
|
72
|
-
: highestStableTag;
|
|
73
|
-
!!highestChannelTag && logger_1.default.info(`The last pre-release channel version (${prereleaseChannel}) is: ${(0, colorette_1.bold)(highestChannelTag)}`);
|
|
74
|
-
logger_1.default.info(`The last stable/production version is: ${highestStableTag ? (0, colorette_1.bold)(highestStableTag) : (0, colorette_1.gray)('none')}`);
|
|
75
|
-
logger_1.default.info(`The current/highest version is: ${highestTag ? (0, colorette_1.bold)(highestTag) : (0, colorette_1.gray)('none')}`);
|
|
76
|
-
logger_1.default.info(`Fetching commits since ${tagFromWhichToFindCommits ?? 'the beginning of the repository'}...`);
|
|
77
|
-
const commits = git.getCommitsFromTag(tagFromWhichToFindCommits);
|
|
78
|
-
logger_1.default.info(`Found ${(0, colorette_1.bold)(commits.length.toString())} commit(s).`);
|
|
79
|
-
const parsedCommits = commits.map((commit) => convCom.parseConventionalCommit(commit.message, commit.hash))
|
|
80
|
-
.filter((commit) => !!commit);
|
|
81
|
-
const releaseType = convCom.determineReleaseType(parsedCommits, commitTypeMap);
|
|
82
|
-
const releaseTypeStr = (releaseType === 'none' && (0, colorette_1.gray)('none'))
|
|
83
|
-
|| (releaseType === 'major' && (0, colorette_1.redBright)('major'))
|
|
84
|
-
|| (releaseType === 'minor' && (0, colorette_1.yellowBright)('minor'))
|
|
85
|
-
|| (releaseType === 'patch' && (0, colorette_1.greenBright)('patch'));
|
|
86
|
-
logger_1.default.info(`The release type is: ${(0, colorette_1.bold)(String(releaseTypeStr))}`);
|
|
87
|
-
if (releaseType === 'none' && !args.useVersion) {
|
|
88
|
-
logger_1.default.info('No release is needed. Have a nice day (^_^)/');
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
// Validate useVersion & log warnings
|
|
92
|
-
if (args.useVersion) {
|
|
93
|
-
if (/^v(.+)$/.test(args.useVersion))
|
|
94
|
-
throw new Error('useVersion should not start with a "v".');
|
|
95
|
-
if (!semver.isValidTag(args.useVersion))
|
|
96
|
-
throw new Error('useVersion must be a valid SemVer version');
|
|
97
|
-
if (releaseType === 'none') {
|
|
98
|
-
logger_1.default.warn(`We didn't find any commmits that would create a release, but you have set 'useVersion', which will force a release as: ${(0, colorette_1.bold)(args.useVersion)}.`);
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
logger_1.default.warn(`The next version was explicitly set by useVersion to be: ${(0, colorette_1.bold)(args.useVersion)}.`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
const nextTag = args.useVersion
|
|
105
|
-
? `v${args.useVersion}`
|
|
106
|
-
: semver.toTag(semver.incrVer({
|
|
107
|
-
latestVer: semver.fromTag(highestTag || 'v0.0.0'),
|
|
108
|
-
latestStableVer: semver.fromTag(highestStableTag || 'v0.0.0'),
|
|
109
|
-
releaseType,
|
|
110
|
-
prereleaseChannel,
|
|
111
|
-
latestChannelVer: highestChannelTag ? semver.fromTag(highestChannelTag) ?? undefined : undefined,
|
|
112
|
-
}));
|
|
113
|
-
const changelog = (0, changelog_1.generateChangelog)(parsedCommits, commitTypeMap, args.breakingChangeTitle);
|
|
114
|
-
logger_1.default.info(`The next version is: ${(0, colorette_1.bold)(nextTag)}`);
|
|
115
|
-
logger_1.default.debug(`The changelog is:\n${changelog}`);
|
|
116
|
-
if (args.dryRun)
|
|
117
|
-
return;
|
|
118
|
-
if (args.preRun) {
|
|
119
|
-
logger_1.default.info('Running pre-release bash script...');
|
|
120
|
-
(0, sh_1.bash)(args.preRun);
|
|
121
|
-
}
|
|
122
|
-
git.createAndPushTag(nextTag);
|
|
123
|
-
const { owner, repository } = git.getRepo();
|
|
124
|
-
!args.skipRelease && github.createRelease({
|
|
125
|
-
token: process.env.GITHUB_TOKEN,
|
|
126
|
-
owner,
|
|
127
|
-
repository,
|
|
128
|
-
tag: nextTag,
|
|
129
|
-
name: nextTag,
|
|
130
|
-
body: changelog,
|
|
131
|
-
});
|
|
132
|
-
// publish to npm
|
|
133
|
-
if (args.publish) {
|
|
134
|
-
(0, updatePackageJsonVersion_1.updatePackageJsonVersion)(nextTag);
|
|
135
|
-
npm.publishPackage(prereleaseChannel);
|
|
136
|
-
}
|
|
137
|
-
process.env.NEXT_VERSION = nextTag.replace('v', '');
|
|
138
|
-
process.env.NEXT_TAG = nextTag;
|
|
139
|
-
// run post-release bash script
|
|
140
|
-
if (args.run) {
|
|
141
|
-
logger_1.default.info('Running post-release bash script...');
|
|
142
|
-
(0, sh_1.bash)(args.run);
|
|
143
|
-
}
|
|
144
|
-
else if (args.runScript) {
|
|
145
|
-
// TODO: delete this block in the next major version
|
|
146
|
-
logger_1.default.warn('----------------------------');
|
|
147
|
-
logger_1.default.warn('🚨 The "runScript" option is deprecated. Please use "run" instead. 🚨');
|
|
148
|
-
logger_1.default.warn('🚨 The "runScript" option will be removed in the next major version. 🚨');
|
|
149
|
-
logger_1.default.warn('----------------------------');
|
|
150
|
-
logger_1.default.info('Running post-release bash script...');
|
|
151
|
-
(0, sh_1.bash)(args.runScript);
|
|
152
|
-
}
|
|
153
|
-
return nextTag.replace('v', '');
|
|
154
|
-
}
|
|
155
|
-
exports.autorel = autorel;
|
|
156
17
|
__exportStar(require("./defaults"), exports);
|
|
157
18
|
__exportStar(require("./config"), exports);
|
|
19
|
+
__exportStar(require("./autorel"), exports);
|
|
158
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runUserPreleaseScripts = void 0;
|
|
7
|
+
const logger_1 = __importDefault(require("./lib/logger"));
|
|
8
|
+
const sh_1 = require("./services/sh");
|
|
9
|
+
function runUserPreleaseScripts(args) {
|
|
10
|
+
if (args.dryRun)
|
|
11
|
+
return;
|
|
12
|
+
if (!args.preRun)
|
|
13
|
+
return;
|
|
14
|
+
logger_1.default.info('Running pre-release bash script...');
|
|
15
|
+
(0, sh_1.bash)(args.preRun);
|
|
16
|
+
}
|
|
17
|
+
exports.runUserPreleaseScripts = runUserPreleaseScripts;
|
|
18
|
+
//# sourceMappingURL=runUserPrereleaseScripts.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runUserReleaseScripts = void 0;
|
|
7
|
+
const logger_1 = __importDefault(require("./lib/logger"));
|
|
8
|
+
const sh_1 = require("./services/sh");
|
|
9
|
+
function runUserReleaseScripts(args) {
|
|
10
|
+
if (args.dryRun)
|
|
11
|
+
return;
|
|
12
|
+
if (args.run) {
|
|
13
|
+
logger_1.default.info('Running post-release bash script...');
|
|
14
|
+
(0, sh_1.bash)(args.run);
|
|
15
|
+
}
|
|
16
|
+
else if (args.runScript) {
|
|
17
|
+
// TODO: delete this block in the next major version
|
|
18
|
+
logger_1.default.warn('----------------------------');
|
|
19
|
+
logger_1.default.warn('🚨 The "runScript" option is deprecated. Please use "run" instead. 🚨');
|
|
20
|
+
logger_1.default.warn('🚨 The "runScript" option will be removed in the next major version. 🚨');
|
|
21
|
+
logger_1.default.warn('----------------------------');
|
|
22
|
+
logger_1.default.info('Running post-release bash script...');
|
|
23
|
+
(0, sh_1.bash)(args.runScript);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.runUserReleaseScripts = runUserReleaseScripts;
|
|
27
|
+
//# sourceMappingURL=runUserReleaseScripts.js.map
|
package/dist/services/git.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export type Commit = {
|
|
|
4
4
|
};
|
|
5
5
|
export declare function gitFetch(): void;
|
|
6
6
|
export declare function createAndPushTag(tag: string): void;
|
|
7
|
+
export declare function deleteTagFromLocalAndRemote(tag: string): void;
|
|
7
8
|
/**
|
|
8
9
|
* Returns the most recent 100 tags in the repository loosely sorted by version
|
|
9
10
|
* (does not take into account pre-release tags).
|
package/dist/services/git.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCurrentBranch = exports.getCommitsFromTag = exports.getRepo = exports.getRecentTags = exports.createAndPushTag = exports.gitFetch = void 0;
|
|
3
|
+
exports.getCurrentBranch = exports.getCommitsFromTag = exports.getRepo = exports.getRecentTags = exports.deleteTagFromLocalAndRemote = exports.createAndPushTag = exports.gitFetch = void 0;
|
|
4
4
|
const sh_1 = require("./sh");
|
|
5
5
|
function gitFetch() {
|
|
6
6
|
(0, sh_1.$) `git fetch`;
|
|
@@ -11,6 +11,11 @@ function createAndPushTag(tag) {
|
|
|
11
11
|
(0, sh_1.$) `git push origin ${tag}`;
|
|
12
12
|
}
|
|
13
13
|
exports.createAndPushTag = createAndPushTag;
|
|
14
|
+
function deleteTagFromLocalAndRemote(tag) {
|
|
15
|
+
(0, sh_1.$) `git tag -d ${tag}`;
|
|
16
|
+
(0, sh_1.$) `git push origin :refs/tags/${tag}`;
|
|
17
|
+
}
|
|
18
|
+
exports.deleteTagFromLocalAndRemote = deleteTagFromLocalAndRemote;
|
|
14
19
|
/**
|
|
15
20
|
* Returns the most recent 100 tags in the repository loosely sorted by version
|
|
16
21
|
* (does not take into account pre-release tags).
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.validateUseVersion = void 0;
|
|
7
|
+
const colorette_1 = require("colorette");
|
|
8
|
+
const logger_1 = __importDefault(require("./lib/logger"));
|
|
9
|
+
const semver_1 = require("./semver");
|
|
10
|
+
function validateUseVersion(useVersion, releaseType) {
|
|
11
|
+
if (!useVersion)
|
|
12
|
+
return;
|
|
13
|
+
if (/^v(.+)$/.test(useVersion))
|
|
14
|
+
throw new Error('useVersion should not start with a "v".');
|
|
15
|
+
if (!(0, semver_1.isValidTag)(useVersion))
|
|
16
|
+
throw new Error('useVersion must be a valid SemVer version');
|
|
17
|
+
if (releaseType === 'none') {
|
|
18
|
+
logger_1.default.warn(`We didn't find any commmits that would create a release, but you have set 'useVersion', which will force a release as: ${(0, colorette_1.bold)(useVersion)}.`);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
logger_1.default.warn(`The next version was explicitly set by useVersion to be: ${(0, colorette_1.bold)(useVersion)}.`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.validateUseVersion = validateUseVersion;
|
|
25
|
+
//# sourceMappingURL=validateUseVersion.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "autorel",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.3",
|
|
4
4
|
"description": "Automate semantic releases based on conventional commits. Similar to semantic-release but much simpler.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Marc H. Weiner <mhweiner234@gmail.com> (https://mhweiner.com)",
|