@oneblink/release-cli 2.0.0-beta.1 → 2.0.1
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/bin.js +22 -2
- package/dist/startReleaseProcess.js +11 -7
- package/package.json +1 -1
package/dist/bin.js
CHANGED
|
@@ -4,6 +4,7 @@ import updateNotifier from 'update-notifier';
|
|
|
4
4
|
import meow from 'meow';
|
|
5
5
|
import enquirer from 'enquirer';
|
|
6
6
|
import startReleaseProcess from './startReleaseProcess.js';
|
|
7
|
+
import semver from 'semver';
|
|
7
8
|
const cli = meow(`
|
|
8
9
|
oneblink-release [next-version] [--no-git] [--name] [--no-name] [--cwd path]
|
|
9
10
|
|
|
@@ -56,7 +57,10 @@ Examples
|
|
|
56
57
|
},
|
|
57
58
|
},
|
|
58
59
|
});
|
|
59
|
-
async function getReleaseName(name) {
|
|
60
|
+
async function getReleaseName({ name, preRelease, }) {
|
|
61
|
+
if (preRelease) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
60
64
|
if (typeof name === 'string' && name) {
|
|
61
65
|
return name;
|
|
62
66
|
}
|
|
@@ -88,12 +92,28 @@ async function run() {
|
|
|
88
92
|
type: 'input',
|
|
89
93
|
message: 'Next version? e.g. "1.2.3" or "1.2.3-beta.1"',
|
|
90
94
|
name: 'nextVersion',
|
|
95
|
+
required: true,
|
|
96
|
+
validate: (value) => {
|
|
97
|
+
const nextSemverVersion = semver.valid(value);
|
|
98
|
+
if (!nextSemverVersion) {
|
|
99
|
+
return 'Next version must be valid semver';
|
|
100
|
+
}
|
|
101
|
+
return true;
|
|
102
|
+
},
|
|
91
103
|
},
|
|
92
104
|
]);
|
|
93
105
|
input = nextVersion;
|
|
94
106
|
}
|
|
95
|
-
const
|
|
107
|
+
const preReleaseComponents = semver.prerelease(input);
|
|
108
|
+
const preRelease = typeof preReleaseComponents?.[0] === 'string'
|
|
109
|
+
? preReleaseComponents[0]
|
|
110
|
+
: undefined;
|
|
111
|
+
const releaseName = await getReleaseName({
|
|
112
|
+
name: cli.flags.name,
|
|
113
|
+
preRelease,
|
|
114
|
+
});
|
|
96
115
|
await startReleaseProcess({
|
|
116
|
+
preRelease,
|
|
97
117
|
nextVersion: input,
|
|
98
118
|
git: cli.flags.git,
|
|
99
119
|
releaseName,
|
|
@@ -82,9 +82,14 @@ ${dependenciesChangelogHeading}
|
|
|
82
82
|
${dependenciesChangelogEntries}
|
|
83
83
|
`;
|
|
84
84
|
});
|
|
85
|
-
const nextReleaseTitle = `[${nextSemverVersion}]
|
|
85
|
+
const nextReleaseTitle = `[${nextSemverVersion}] - ${new Date()
|
|
86
86
|
.toISOString()
|
|
87
|
-
.substring(0, 10)}
|
|
87
|
+
.substring(0, 10)}`;
|
|
88
|
+
const releaseNameSubtitle = releaseName
|
|
89
|
+
? `
|
|
90
|
+
|
|
91
|
+
##### Release Name: ${releaseName}`
|
|
92
|
+
: '';
|
|
88
93
|
await wrapWithLoading({
|
|
89
94
|
startText: `Updating CHANGELOG.md with next release (${nextReleaseTitle})`,
|
|
90
95
|
failText: `Failed to update CHANGELOG.md with next release (${nextReleaseTitle})`,
|
|
@@ -108,7 +113,7 @@ ${parsedChangelog.versions
|
|
|
108
113
|
return `
|
|
109
114
|
## ${title}
|
|
110
115
|
|
|
111
|
-
## ${nextReleaseTitle}
|
|
116
|
+
## ${nextReleaseTitle}${releaseNameSubtitle}
|
|
112
117
|
|
|
113
118
|
${body}
|
|
114
119
|
|
|
@@ -146,15 +151,14 @@ async function executeCommand(command, args, cwd) {
|
|
|
146
151
|
spinner.succeed(`Ran "${command} ${args.join(' ')}"`);
|
|
147
152
|
});
|
|
148
153
|
}
|
|
149
|
-
export default async function startReleaseProcess({ nextVersion, cwd, git, releaseName, }) {
|
|
154
|
+
export default async function startReleaseProcess({ nextVersion, preRelease, cwd, git, releaseName, }) {
|
|
150
155
|
const nextSemverVersion = semver.valid(nextVersion);
|
|
151
156
|
if (!nextSemverVersion) {
|
|
152
157
|
throw new Error('Next version is not valid semver');
|
|
153
158
|
}
|
|
154
159
|
const npm = await checkIfNPMPackageVersionShouldBeUpdated(cwd);
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
const text = `Skipping changelog updates for "${preReleaseComponents[0]}" release`;
|
|
160
|
+
if (preRelease) {
|
|
161
|
+
const text = `Skipping changelog updates for "${preRelease}" release`;
|
|
158
162
|
ora(text).start().info(text);
|
|
159
163
|
}
|
|
160
164
|
else {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneblink/release-cli",
|
|
3
3
|
"description": "Used internally by OneBlink to release code bases quickly and consistently",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.1",
|
|
5
5
|
"author": "OneBlink <developers@oneblink> (https://github.com/oneblink)",
|
|
6
6
|
"bin": {
|
|
7
7
|
"oneblink-release": "dist/bin.js"
|