autorel 0.0.20 → 0.0.22
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/README.md +23 -15
- package/dist/index.js +3 -3
- package/dist/lib/git.js +9 -9
- package/dist/lib/npm.js +2 -2
- package/dist/lib/{bash.js → sh.js} +1 -1
- package/package.json +1 -1
- /package/dist/lib/{bash.d.ts → sh.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -30,11 +30,12 @@ Autorel automatically does the following, if appropriate:
|
|
|
30
30
|
**💪 Flexible & Powerful**
|
|
31
31
|
- Use via `npx`, or import as a library
|
|
32
32
|
- If using CLI, supports both `yaml` configuration and arguments
|
|
33
|
+
- Highly customizable without being overly complex
|
|
33
34
|
|
|
34
35
|
# Example Usage (CLI)
|
|
35
36
|
|
|
36
37
|
```bash
|
|
37
|
-
npx autorel --publish --run "echo
|
|
38
|
+
npx autorel --publish --run "echo \"Next version is ${NEXT_VERSION}!\""
|
|
38
39
|
```
|
|
39
40
|
|
|
40
41
|
This will:
|
|
@@ -42,13 +43,13 @@ This will:
|
|
|
42
43
|
1. Bump the version based on the commit messages since the last release (including pushing the tag and updating package.json)
|
|
43
44
|
2. Create a new release on GitHub with Release Notes
|
|
44
45
|
3. Publish the release to NPM
|
|
45
|
-
4. Run the command `echo
|
|
46
|
+
4. Run the command `echo "Next version is ${NEXT_VERSION}!"`
|
|
46
47
|
|
|
47
48
|
You can also install `autorel` globally and run it that way:
|
|
48
49
|
|
|
49
50
|
```bash
|
|
50
51
|
npm i -g autorel
|
|
51
|
-
autorel --publish
|
|
52
|
+
autorel --publish
|
|
52
53
|
```
|
|
53
54
|
|
|
54
55
|
# Example Usage (Library)
|
|
@@ -113,7 +114,12 @@ Whether to skip creating a release on GitHub. If `true`, the release will not be
|
|
|
113
114
|
|
|
114
115
|
## run
|
|
115
116
|
|
|
116
|
-
A command to run after the release is complete.
|
|
117
|
+
A command to run after the release is complete. The following environment variables are available:
|
|
118
|
+
|
|
119
|
+
| Variable | Description |
|
|
120
|
+
| --- | --- |
|
|
121
|
+
| `NEXT_VERSION` | The next version number (without the `v`) |
|
|
122
|
+
| `NEXT_TAG` | The next tag |
|
|
117
123
|
|
|
118
124
|
- CLI: `--run`
|
|
119
125
|
- Argument: `run: string`
|
|
@@ -121,12 +127,9 @@ A command to run after the release is complete. This will be run via `child_proc
|
|
|
121
127
|
|
|
122
128
|
## runScript (YAML only)
|
|
123
129
|
|
|
124
|
-
A bash script to run after the release is complete.
|
|
125
|
-
|
|
126
|
-
- Argument: `runScript: string`
|
|
127
|
-
- Default: `undefined`
|
|
130
|
+
A bash script to run after the release is complete. Environment variables are available as above.
|
|
128
131
|
|
|
129
|
-
> This requires `bash` to be installed on the system.
|
|
132
|
+
> ❗️ This requires `bash` to be installed on the system.
|
|
130
133
|
|
|
131
134
|
You can use the multi-line string syntax in YAML to write a script:
|
|
132
135
|
|
|
@@ -136,12 +139,7 @@ runScript: |
|
|
|
136
139
|
echo 'Goodbye, World!' > goodbye.txt
|
|
137
140
|
```
|
|
138
141
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
The tag to use for the release. This will be used verbatim, instead of being generated from the version number. Always results in a release being created unless `noRelease` is `true`. **Advanced usage only.**
|
|
142
|
-
|
|
143
|
-
- CLI: `--tag`
|
|
144
|
-
- Argument: `tag: string`
|
|
142
|
+
- Argument: `runScript: string`
|
|
145
143
|
- Default: `undefined`
|
|
146
144
|
|
|
147
145
|
## pre-release
|
|
@@ -186,6 +184,16 @@ The above will release to the `latest` channel (production) on NPM for the `main
|
|
|
186
184
|
|
|
187
185
|
- Argument: `branches: ReleaseBranch[]`
|
|
188
186
|
|
|
187
|
+
## useVersion
|
|
188
|
+
|
|
189
|
+
The version to use for the release INSTEAD of the version being generated. Always results in a release being created unless `noRelease` is `true`. **Advanced usage only, not recommended for most users.**
|
|
190
|
+
|
|
191
|
+
- CLI: `--use-version`
|
|
192
|
+
- Argument: `useVersion: string`
|
|
193
|
+
- Default: `undefined`
|
|
194
|
+
|
|
195
|
+
> ❗️ Must be a valid SemVer version, without the `v`.
|
|
196
|
+
|
|
189
197
|
# Sample YAML Configuration
|
|
190
198
|
|
|
191
199
|
<sub>_.autorel.yaml_</sub>
|
package/dist/index.js
CHANGED
|
@@ -38,7 +38,7 @@ const github = __importStar(require("./services/github"));
|
|
|
38
38
|
const output_1 = __importDefault(require("./lib/output"));
|
|
39
39
|
const config_1 = require("./config");
|
|
40
40
|
const versionBump_1 = require("./versionBump");
|
|
41
|
-
const
|
|
41
|
+
const sh_1 = require("./lib/sh");
|
|
42
42
|
function getPrereleaseChannel(args) {
|
|
43
43
|
if (args.prereleaseChannel)
|
|
44
44
|
return args.prereleaseChannel;
|
|
@@ -117,7 +117,7 @@ async function autorel(args) {
|
|
|
117
117
|
output_1.default.log(args.run);
|
|
118
118
|
output_1.default.log('----------------------------');
|
|
119
119
|
output_1.default.log('');
|
|
120
|
-
(0,
|
|
120
|
+
(0, sh_1.cmd)(args.run);
|
|
121
121
|
}
|
|
122
122
|
else if (args.runScript) {
|
|
123
123
|
output_1.default.log('Running post-release bash script:');
|
|
@@ -126,7 +126,7 @@ async function autorel(args) {
|
|
|
126
126
|
output_1.default.log(args.runScript);
|
|
127
127
|
output_1.default.log('----------------------------');
|
|
128
128
|
output_1.default.log('');
|
|
129
|
-
(0,
|
|
129
|
+
(0, sh_1.bash)(args.runScript);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
exports.autorel = autorel;
|
package/dist/lib/git.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCurrentBranch = exports.getCommitsSinceLastTag = exports.getRepo = exports.getLastProdTag = exports.getLastTag = exports.createAndPushTag = void 0;
|
|
4
|
-
const
|
|
4
|
+
const sh_1 = require("./sh");
|
|
5
5
|
function createAndPushTag(tag) {
|
|
6
|
-
(0,
|
|
7
|
-
(0,
|
|
6
|
+
(0, sh_1.$) `git tag ${tag}`;
|
|
7
|
+
(0, sh_1.$) `git push origin ${tag}`;
|
|
8
8
|
}
|
|
9
9
|
exports.createAndPushTag = createAndPushTag;
|
|
10
10
|
function getLastTag() {
|
|
11
|
-
return (0,
|
|
11
|
+
return (0, sh_1.$) `git tag | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1` || '';
|
|
12
12
|
}
|
|
13
13
|
exports.getLastTag = getLastTag;
|
|
14
14
|
function getLastProdTag() {
|
|
15
|
-
return (0,
|
|
15
|
+
return (0, sh_1.$) `git tag --list | grep -E "^v[0-9]+\\.[0-9]+\\.[0-9]+$" | sort -V | tail -n 1` || '';
|
|
16
16
|
}
|
|
17
17
|
exports.getLastProdTag = getLastProdTag;
|
|
18
18
|
function getRepo() {
|
|
@@ -20,7 +20,7 @@ function getRepo() {
|
|
|
20
20
|
const [owner, repository] = process.env.GITHUB_REPOSITORY.split('/');
|
|
21
21
|
return { owner, repository };
|
|
22
22
|
}
|
|
23
|
-
const url = (0,
|
|
23
|
+
const url = (0, sh_1.$) `git remote get-url origin`;
|
|
24
24
|
const regex = /^git@github\.com:(.+)\/(.+)\.git$/;
|
|
25
25
|
const matches = url.match(regex);
|
|
26
26
|
if (!matches)
|
|
@@ -33,8 +33,8 @@ exports.getRepo = getRepo;
|
|
|
33
33
|
function getCommitsSinceLastTag(lastTag) {
|
|
34
34
|
const format = '<commit><hash>%h</hash><message>%B</message></commit>';
|
|
35
35
|
const rawLog = lastTag !== ''
|
|
36
|
-
? (0,
|
|
37
|
-
: (0,
|
|
36
|
+
? (0, sh_1.$) `git log --pretty=format:"${format}" ${lastTag}..HEAD`
|
|
37
|
+
: (0, sh_1.$) `git log --pretty=format:"${format}"`;
|
|
38
38
|
const commitsXml = rawLog.match(/<commit>.*?<\/commit>/gs);
|
|
39
39
|
if (!commitsXml)
|
|
40
40
|
return [];
|
|
@@ -46,7 +46,7 @@ function getCommitsSinceLastTag(lastTag) {
|
|
|
46
46
|
}
|
|
47
47
|
exports.getCommitsSinceLastTag = getCommitsSinceLastTag;
|
|
48
48
|
function getCurrentBranch() {
|
|
49
|
-
return (0,
|
|
49
|
+
return (0, sh_1.$) `git rev-parse --abbrev-ref HEAD`;
|
|
50
50
|
}
|
|
51
51
|
exports.getCurrentBranch = getCurrentBranch;
|
|
52
52
|
//# sourceMappingURL=git.js.map
|
package/dist/lib/npm.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.publishPackage = void 0;
|
|
4
|
-
const
|
|
4
|
+
const sh_1 = require("./sh");
|
|
5
5
|
function publishPackage(channel) {
|
|
6
|
-
(0,
|
|
6
|
+
(0, sh_1.$) `npm publish --tag ${channel || 'latest'}`;
|
|
7
7
|
}
|
|
8
8
|
exports.publishPackage = publishPackage;
|
|
9
9
|
//# sourceMappingURL=npm.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "autorel",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.22",
|
|
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)",
|
|
File without changes
|