Skip to content

Commit

Permalink
chore(build): Use best practices to release new versions
Browse files Browse the repository at this point in the history
  • Loading branch information
diegonetto committed Feb 5, 2015
1 parent d7cff2b commit 492657f
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 1 deletion.
59 changes: 59 additions & 0 deletions Gruntfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
'use strict';
var semver = require('semver');

module.exports = function (grunt) {
require('load-grunt-tasks')(grunt);

grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
changelog: {
options: {
dest: 'CHANGELOG.md',
versionFile: 'package.json'
}
},
release: {
options: {
commitMessage: '<%= version %>',
tagName: 'v<%= version %>',
bump: false, // we have our own bump
file: 'package.json'
}
},
stage: {
options: {
files: ['CHANGELOG.md']
}
}
});

grunt.registerTask('bump', 'bump manifest version', function (type) {
var options = this.options({
file: grunt.config('pkgFile') || 'package.json'
});

function setup(file, type) {
var pkg = grunt.file.readJSON(file);
var newVersion = pkg.version = semver.inc(pkg.version, type || 'patch');
return {
file: file,
pkg: pkg,
newVersion: newVersion
};
}

var config = setup(options.file, type);
grunt.file.write(config.file, JSON.stringify(config.pkg, null, ' ') + '\n');
grunt.log.ok('Version bumped to ' + config.newVersion);
});

grunt.registerTask('stage', 'git add files before running the release task', function () {
var files = this.options().files;
grunt.util.spawn({
cmd: process.platform === 'win32' ? 'git.cmd' : 'git',
args: ['add'].concat(files)
}, grunt.task.current.async());
});

grunt.registerTask('default', ['bump', 'changelog', 'stage', 'release']);
};
8 changes: 7 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,14 @@
"yosay": "^1.0.2"
},
"devDependencies": {
"grunt": "^0.4.5",
"grunt-conventional-changelog": "^1.1.0",
"grunt-release": "^0.11.0",
"load-grunt-tasks": "^3.1.0",
"marked": "^0.3.3",
"mocha": "^2.1.0",
"mockery": "^1.4.0"
"mockery": "^1.4.0",
"semver": "^4.2.0"
},
"peerDependencies": {
"yo": ">=1.0.0"
Expand Down

0 comments on commit 492657f

Please sign in to comment.