Skip to content

Commit 96c4aee

Browse files
committed
workflow(release): do not allow rollbacks for prerelease versions when b…
1 parent 0218a67 commit 96c4aee

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

scripts/release.mts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,23 @@ async function release() {
7979

8080
let targetVersion = t
8181

82+
const parsedCurrentVersion = semver.parse(currentVersion) as SemVer
83+
8284
if (t.startsWith('pre')) {
85+
// 只升 prerelease 版本时,已经是 beta 阶段就不可能再回到 alpha 阶段
86+
let prereleaseTypes = ['alpha', 'beta', 'rc']
87+
if (t === 'prerelease') {
88+
const i = prereleaseTypes.indexOf(parsedCurrentVersion.prerelease[0])
89+
if (i !== -1) {
90+
prereleaseTypes = prereleaseTypes.slice(i)
91+
}
92+
}
93+
8394
targetVersion = (await prompts({
8495
type: 'select',
8596
name: 'value',
8697
message: 'Select prerelease type',
87-
choices: Array.from(['alpha', 'beta', 'rc'], title => ({
98+
choices: Array.from(prereleaseTypes, title => ({
8899
title,
89100
value: semver.inc(currentVersion, t, title),
90101
})),
@@ -112,7 +123,6 @@ async function release() {
112123
}
113124

114125
if (['minor', 'major'].includes(t)) {
115-
const parsedCurrentVersion = semver.parse(currentVersion) as SemVer
116126
const parsedTargetVersion = semver.parse(targetVersion) as SemVer
117127
const pattern = new RegExp(`${name}@${parsedCurrentVersion.major}.${parsedCurrentVersion.minor}`, 'g')
118128
const replacement = `${name}@${parsedTargetVersion.major}.${parsedTargetVersion.minor}`

0 commit comments

Comments
 (0)