@@ -27,37 +27,55 @@ function getVersion() {
2727// Merge the specified branch back into master and develop.
2828function mergeBranch ( branch ) {
2929 var mergeCmd = 'git merge --no-ff --no-edit ' + branch ;
30+
31+ console . log ( 'Merging release into master.' )
3032 return exec ( 'git checkout master && ' + mergeCmd ) . then ( function ( ) {
33+ console . log ( 'Merging release into develop.' )
3134 return exec ( 'git checkout develop && ' + mergeCmd ) ;
3235 } ) ;
3336}
3437
3538/* ----- TASKS ----- */
3639
40+ // Bump version using NPM (only affects package*.json, doesn't commit).
41+ gulp . task ( 'bump-version' , function ( ) {
42+ console . log ( 'Bumping version number.' ) ;
43+ return exec ( 'npm --no-git-tag-version version ' + args . newversion ) ;
44+ } ) ;
45+
3746// Stage a release (bump version and create a 'release/[version]' branch).
38- gulp . task ( 'stage-release' , function ( ) {
39- var cmd = 'npm --no-git-tag-version version ' + args . newversion ;
40- return exec ( cmd ) . then ( function ( ) {
41- var version = getVersion ( ) ;
42- var branch = ' release/ ' + version ;
47+ gulp . task ( 'stage-release' , [ 'bump-version' ] , function ( ) {
48+ var version = getVersion ( ) ;
49+ var branch = 'release/' + version ;
50+ var cmd = 'git checkout -b ' + branch + ' && git add -A' ;
51+ cmd += ' && git commit -m "Prepare release ' + version + '"' ;
4352
44- var cmd = 'git checkout -b ' + branch + ' && git add -A' ;
45- cmd += ' && git commit -m "Prepare release ' + version + '"' ;
46- return exec ( cmd ) ;
47- } ) ;
53+ console . log ( 'Creating release branch and committing changes.' ) ;
54+ return exec ( cmd ) ;
4855} ) ;
4956
50- // Tag and merge the latest release into master/develop.
51- gulp . task ( 'release' , function ( ) {
57+ gulp . task ( 'finalize-release' , function ( ) {
5258 var version = getVersion ( ) ;
5359 var branch = 'release/' + version ;
54-
5560 var cmd = 'git checkout ' + branch + ' && npm run build' ;
56- cmd += ' && git add -A && git commit -m "Build ' + version + '"' ;
57- cmd += ' && git tag -a ' + version + ' -m "' + version + ' ' + args . tagmessage + '"' ;
61+
62+ console . log ( 'Running build process in release branch.' ) ;
5863 return exec ( cmd ) . then ( function ( ) {
59- return mergeBranch ( branch ) ;
64+ console . log ( 'Adding all changes and performing final commit.' ) ;
65+ return exec ( 'git add -A && git commit --allow-empty -m "Build ' + version + '"' ) ;
6066 } ) . then ( function ( ) {
67+ console . log ( 'Tagging with provided tag message.' ) ;
68+ return exec ( 'git tag -a ' + version + ' -m "' + version + ' ' + args . tagmessage + '"' ) ;
69+ } ) ;
70+ } ) ;
71+
72+ // Tag and merge the latest release into master/develop.
73+ gulp . task ( 'release' , [ 'finalize-release' ] , function ( ) {
74+ var version = getVersion ( ) ;
75+ var branch = 'release/' + version ;
76+
77+ return mergeBranch ( branch ) . then ( function ( ) {
78+ console . log ( 'Deleting release branch.' ) ;
6179 return exec ( 'git branch -d ' + branch ) ;
6280 } ) ;
6381} ) ;
0 commit comments