@@ -8,14 +8,16 @@ const MASTER_BRANCH_NAME = 'master'
88const RELEASE_MAJOR = 'major'
99const RELEASE_MINOR = 'minor'
1010const RELEASE_PATCH = 'patch'
11+ const RELEASE_TEST = 'test'
1112
1213const releaseLevel = process . argv [ 2 ]
1314if (
1415 releaseLevel !== RELEASE_MAJOR &&
1516 releaseLevel !== RELEASE_MINOR &&
16- releaseLevel !== RELEASE_PATCH
17+ releaseLevel !== RELEASE_PATCH &&
18+ releaseLevel !== RELEASE_TEST
1719) {
18- shell . echo ( `Error: The provided release level is incorrect: ${ releaseLevel } . Allowed: ${ RELEASE_MAJOR } , ${ RELEASE_MINOR } , ${ RELEASE_PATCH } ` )
20+ shell . echo ( `Error: The provided release level is incorrect: ${ releaseLevel } . Allowed: ${ RELEASE_MAJOR } , ${ RELEASE_MINOR } , ${ RELEASE_PATCH } , ${ RELEASE_TEST } ` )
1921 shell . exit ( 1 )
2022}
2123
@@ -130,16 +132,29 @@ if (commitChanges.code === 0) {
130132 shell . exit ( 1 )
131133}
132134
133- // tag the release
134- const releaseTagging = shell . exec ( `npm version ${ releaseLevel } ` )
135- if ( releaseTagging . code === 0 ) {
136- shell . echo ( 'Tag the release.' )
135+ if ( releaseLevel === RELEASE_TEST ) {
136+ // snapshot the release in "test" branch
137+ const releaseSnapshotting = shell . exec ( `git branch ${ RELEASE_TEST } ` )
138+ if ( releaseSnapshotting . code === 0 ) {
139+ shell . echo ( 'Snapshot the release.' )
140+ } else {
141+ shell . echo ( 'Error: Could not snapshot the release.' )
142+ console . log ( releaseSnapshotting . stderr )
143+ shell . exit ( 1 )
144+ }
137145} else {
138- shell . echo ( 'Error: Could not tag the release.' )
139- console . log ( releaseTagging . stderr )
140- shell . exit ( 1 )
146+ // tag the release
147+ const releaseTagging = shell . exec ( `npm version ${ releaseLevel } ` )
148+ if ( releaseTagging . code === 0 ) {
149+ shell . echo ( 'Tag the release.' )
150+ } else {
151+ shell . echo ( 'Error: Could not tag the release.' )
152+ console . log ( releaseTagging . stderr )
153+ shell . exit ( 1 )
154+ }
141155}
142156
157+
143158// checkout the master branch
144159const masterCheckout = shell . exec ( `git checkout ${ MASTER_BRANCH_NAME } ` , silent )
145160if ( masterCheckout . code === 0 ) {
@@ -170,6 +185,11 @@ if (vendorInstallAll.code === 0) {
170185 shell . exit ( 1 )
171186}
172187
188+ // if it was a test release then do nothing on master branch
189+ if ( releaseLevel === RELEASE_TEST ) {
190+ return
191+ }
192+
173193// increment version in package.json file
174194// for master branch, since changes in release
175195// branch do not affect master branch, the package
0 commit comments