Skip to content

Commit

Permalink
added bump & push scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
amsul committed Apr 20, 2015
1 parent c7130a0 commit 14ae158
Show file tree
Hide file tree
Showing 3 changed files with 111 additions and 1 deletion.
10 changes: 9 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,18 @@
"url": "https://github.com/amsul/pickadate.js.git"
},
"scripts": {
"prebump": "npm test",
"bump": "node ./version-bump.js",
"postbump": "grunt package && node ./version-commit.js",
"push": "git push && git push origin --tags && npm publish",
"test": "grunt test --verbose"
},
"dependencies": {
"jquery": ">=1.7"
},
"devDependencies": {
"commander": "^2.8.0",
"glob": "^5.0.5",
"grunt": "^0.4.5",
"grunt-autoprefixer": "^3.0.0",
"grunt-contrib-copy": "^0.8.0",
Expand All @@ -45,6 +51,8 @@
"grunt-contrib-uglify": "^0.9.1",
"grunt-contrib-watch": "^0.6.1",
"phantomjs": "^1.9.16",
"semver": "^4.3.3",
"shelljs": "^0.4.0",
"zlib-browserify": "0.0.3"
}
}
}
78 changes: 78 additions & 0 deletions version-bump.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
/*jshint node: true*/

var program = require('commander')
var semver = require('semver')
var grunt = require('grunt')
var glob = require('glob').sync


program
.option('-p, --patch', 'set the version as the next patch')
.option('-m, --minor', 'set the version as the next minor')
.option('-M, --major', 'set the version as the next major')
.parse(process.argv)


if (program.patch) {
bumpVersion('patch')
return
}

if (program.minor) {
bumpVersion('minor')
return
}

if (program.major) {
bumpVersion('major')
return
}

grunt.fail.fatal('No release type specified')
return


function bumpVersion(release) {
grunt.log.writeln('Bumping package version by a ' + release)
var version = readPackageVersion()
grunt.log.writeln('Current package version: ' + version)
version = semver.inc(version, release)
grunt.log.writeln('Updated package version: ' + version)
writePackageVersion(version)
grunt.log.writeln('Done updating the package version')
updateLibraryFiles(version)
grunt.log.writeln('Done updating the library files')
}


function readPackageVersion() {
var pkg = require('./package')
return pkg.version
}


function writePackageVersion(version) {
var pkg = require('./package')
pkg.version = version
grunt.file.write('./package.json', JSON.stringify(pkg, null, ' '))
}


function updateLibraryFiles(version) {

var versionRegex = /^(\s*\/\*![^\/]+?v)(\d+\.\d+\.\d+)(([^\n]+?)(\d+\/\d+\/\d+))?/
var today = grunt.template.today('yyyy/mm/dd')
var files = glob('lib/*.js')

files.forEach(updateLibraryFile)

function updateLibraryFile(filePath) {
var content = grunt.file.read(filePath)
if (versionRegex.test(content)) {
content = content.split(versionRegex)
content = content[1] + version + (content[4] || '') + (content[5] ? today : '') + (content[6] || '')
}
grunt.file.write(filePath, content)
}

}
24 changes: 24 additions & 0 deletions version-commit.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/*jshint node: true*/

var grunt = require('grunt')
var exec = require('shelljs').exec

var pkg = require('./package')


var isSuccessful = commitAndTag(pkg.version)
if (!isSuccessful) {
grunt.fail.fatal('Unable to commit and tag version')
}

return


function commitAndTag(version) {
var code = exec([
'git add .',
'git commit -m "Release v' + version + '"',
'git tag ' + version,
].join(' && ')).code
return !code
}

0 comments on commit 14ae158

Please sign in to comment.