@@ -23,20 +23,37 @@ async function run() {
23
23
console . log ( 'Branch: release' ) ;
24
24
nextVersion = semver . inc ( currentVersion , 'minor' ) ;
25
25
} else {
26
- console . log ( 'Branch: master/main ' ) ;
26
+ console . log ( 'Branch: master' ) ;
27
27
const prereleaseComponents = semver . prerelease ( currentVersion ) ;
28
28
const isBumpBeta = lastCommitMessage . trim ( ) . endsWith ( '[BUMP BETA]' ) ;
29
29
console . log ( 'isBumpBeta' , isBumpBeta ) ;
30
30
31
- if ( prereleaseComponents && prereleaseComponents . includes ( 'beta' ) && ! isBumpBeta ) {
32
- nextVersion = semver . inc ( currentVersion , 'prerelease' , 'beta' ) ;
33
- } else if ( isBumpBeta && prereleaseComponents . includes ( 'beta' ) ) {
34
- console . log ( 'Bumping beta version to be fresh beta' ) ;
35
- nextVersion = `${ semver . major ( currentVersion ) } .${ semver . minor ( currentVersion ) + 1 } .0-beta.0` ;
31
+ if ( prereleaseComponents ?. includes ( 'beta' ) ) {
32
+ // if the version includes beta
33
+ if ( isBumpBeta ) {
34
+ // if the commit message includes [BUMP BETA]
35
+ // which means that we should reset to beta 0 for next major version
36
+ // e.g., from 2.11.0-beta.11 to 2.12.0-beta.0
37
+ console . log (
38
+ 'Bumping beta version to be fresh beta, e.g., from 2.11.0-beta.11 to 2.12.0-beta.0'
39
+ ) ;
40
+ nextVersion = `${ semver . major ( currentVersion ) } .${
41
+ semver . minor ( currentVersion ) + 1
42
+ } .0-beta.0`;
43
+ } else {
44
+ // this means that the current version is already a beta version
45
+ // and we should bump the beta version to the next beta version
46
+ // e.g., from 2.11.0-beta.11 to 2.11.0-beta.12
47
+ console . log (
48
+ 'Bumping beta version to be next beta, e.g., from 2.11.0-beta.11 to 2.11.0-beta.12'
49
+ ) ;
50
+ nextVersion = semver . inc ( currentVersion , 'prerelease' , 'beta' ) ;
51
+ }
36
52
} else {
37
- console . log ( 'Bumping minor version for beta release' ) ;
38
- const nextMinorVersion = semver . inc ( currentVersion , 'minor' ) ;
39
- nextVersion = `${ semver . major ( nextMinorVersion ) } .${ semver . minor ( nextMinorVersion ) } .0-beta.0` ;
53
+ // if the version does not include the beta, might be that a recent merge into the release branch
54
+ // that later has been pulled into this PR
55
+ console . log ( 'Bumping beta version to be fresh beta e.g., from 2.11.0 to 2.12.0-beta.0' ) ;
56
+ nextVersion = `${ semver . major ( currentVersion ) } .${ semver . minor ( currentVersion ) + 1 } .0-beta.0` ;
40
57
}
41
58
}
42
59
0 commit comments