| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /**
- * Register release-related tasks.
- */
- module.exports = function (grunt) {
- /**
- * Update manifest file versions.
- */
- grunt.registerTask('version', function (version) {
- var manifests = ['package', 'bower', 'component']
- manifests.forEach(function (file) {
- file = file + '.json'
- var json = grunt.file.read(file)
- json = json.replace(
- /"version"\s*:\s*"(.+?)"/,
- '"version": "' + version + '"'
- )
- grunt.file.write(file, json)
- console.log('updated ' + blue(file))
- })
- })
- /**
- * Commit & push to branches & tags + npm publish
- */
- grunt.registerTask('git', function (version) {
- var ShellTask = require('shell-task')
- new ShellTask('git add -A')
- .then('git commit -m "[release] ' + version + '"')
- .then('git tag ' + version)
- .then('git push')
- .then('git push origin refs/tags/' + version)
- .then('npm publish')
- .run(this.async())
- })
- /**
- * Main release routine.
- */
- grunt.registerTask('release', function (version) {
- var semver = require('semver')
- var readline = require('readline')
- var done = this.async()
- var current = grunt.config.get('version')
- var next = semver.inc(current, version || 'patch') || version
- if (!semver.valid(next)) {
- return grunt.fail.warn('Invalid version.')
- }
- if (semver.lt(next, current)) {
- return grunt.fail.warn('Version is older than current.')
- }
- readline.createInterface({
- input: process.stdin,
- output: process.stdout
- }).question('Releasing version ' + next + '. Continue? (Y/n)', function (answer) {
- if (!answer || answer.toLowerCase() === 'y') {
- console.log(blue('Releasing: ' + next))
- grunt.config.set('version', next)
- grunt.task.run([
- 'jshint',
- 'cover',
- 'build',
- 'casper',
- 'sauce',
- 'version:' + next,
- 'git:' + next
- ])
- }
- done()
- })
- })
- function blue (str) {
- return '\x1b[1m\x1b[34m' + str + '\x1b[39m\x1b[22m'
- }
- }
|