From 5642aeebd244a02673b8f3d770367578aad97b0a Mon Sep 17 00:00:00 2001 From: Erik Koopmans Date: Sat, 25 Nov 2017 22:31:06 +1100 Subject: [PATCH] Separate tasks and add comments/logs --- gulpfile.js | 48 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 4a0a914..392be3b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -27,37 +27,55 @@ function getVersion() { // Merge the specified branch back into master and develop. function mergeBranch(branch) { var mergeCmd = 'git merge --no-ff --no-edit ' + branch; + + console.log('Merging release into master.') return exec('git checkout master && ' + mergeCmd).then(function() { + console.log('Merging release into develop.') return exec('git checkout develop && ' + mergeCmd); }); } /* ----- TASKS ----- */ +// Bump version using NPM (only affects package*.json, doesn't commit). +gulp.task('bump-version', function() { + console.log('Bumping version number.'); + return exec('npm --no-git-tag-version version ' + args.newversion); +}); + // Stage a release (bump version and create a 'release/[version]' branch). -gulp.task('stage-release', function() { - var cmd = 'npm --no-git-tag-version version ' + args.newversion; - return exec(cmd).then(function() { - var version = getVersion(); - var branch = 'release/' + version; +gulp.task('stage-release', ['bump-version'], function() { + var version = getVersion(); + var branch = 'release/' + version; + var cmd = 'git checkout -b ' + branch + ' && git add -A'; + cmd += ' && git commit -m "Prepare release ' + version + '"'; - var cmd = 'git checkout -b ' + branch + ' && git add -A'; - cmd += ' && git commit -m "Prepare release ' + version + '"'; - return exec(cmd); - }); + console.log('Creating release branch and committing changes.'); + return exec(cmd); }); -// Tag and merge the latest release into master/develop. -gulp.task('release', function() { +gulp.task('finalize-release', function() { var version = getVersion(); var branch = 'release/' + version; - var cmd = 'git checkout ' + branch + ' && npm run build'; - cmd += ' && git add -A && git commit -m "Build ' + version + '"'; - cmd += ' && git tag -a ' + version + ' -m "' + version + ' ' + args.tagmessage + '"'; + + console.log('Running build process in release branch.'); return exec(cmd).then(function() { - return mergeBranch(branch); + console.log('Adding all changes and performing final commit.'); + return exec('git add -A && git commit --allow-empty -m "Build ' + version + '"'); }).then(function() { + console.log('Tagging with provided tag message.'); + return exec('git tag -a ' + version + ' -m "' + version + ' ' + args.tagmessage + '"'); + }); +}); + +// Tag and merge the latest release into master/develop. +gulp.task('release', ['finalize-release'], function() { + var version = getVersion(); + var branch = 'release/' + version; + + return mergeBranch(branch).then(function() { + console.log('Deleting release branch.'); return exec('git branch -d ' + branch); }); });