cortfritz / grunt-bump

Grunt.js plugin - Increment package version.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

grunt-bump

Bump package version, create tag, commit, push...

Installation

Install npm package, next to your project's Gruntfile.js file:

npm install grunt-bump --save-dev

Add this line to your project's Gruntfile.js:

grunt.loadNpmTasks('grunt-bump');

Usage

Let's say current version is 0.0.1.

$ grunt bump
>> Version bumped to 0.0.2
>> Committed as "Release v0.0.2"
>> Tagged as "v0.0.2"
>> Pushed to origin

$ grunt bump:patch
>> Version bumped to 0.0.3
>> Committed as "Release v0.0.3"
>> Tagged as "v0.0.3"
>> Pushed to origin

$ grunt bump:minor
>> Version bumped to 0.1.0
>> Committed as "Release v0.1.0"
>> Tagged as "v0.1.0"
>> Pushed to origin

$ grunt bump:major
>> Version bumped to 1.0.0
>> Committed as "Release v1.0.0"
>> Tagged as "v1.0.0"
>> Pushed to origin

$ grunt bump:build
>> Version bumped to 1.0.0-1
>> Committed as "Release v1.0.0-1"
>> Tagged as "v1.0.0-1"
>> Pushed to origin

$ grunt bump:git
>> Version bumped to 1.0.0-1-ge96c
>> Committed as "Release v1.0.0-1-ge96c"
>> Tagged as "v1.0.0-1-ge96c"
>> Pushed to origin

If you want to jump to an exact version, you can use the setversion tag in the command line.

$ grunt bump --setversion=2.0.1
>> Version bumped to 2.0.1
>> Committed as "Release v2.0.1"
>> Tagged as "v2.0.1"
>> Pushed to origin

Sometimes you want to run another task between bumping the version and commiting, for instance generate changelog. You can use bump-only and bump-commit to achieve that:

$ grunt bump-only:minor
$ grunt changelog
$ grunt bump-commit

Configuration

This shows all the available config options with their default values.

bump: {
  options: {
    files: ['package.json'],
    updateConfigs: [],
    commit: true,
    commitMessage: grunt.option('commit') || 'Release v%VERSION%',
    commitFiles: ['package.json'], // '-a' for all files
    createTag: true,
    tagName: 'v%VERSION%',
    tagMessage: 'Version %VERSION%',
    push: true,
    pushTo: 'upstream',
    gitDescribeOptions: '--tags --always --abbrev=1 --dirty=-d' // options to use with '$ git describe'
  }
}

files

List of files to bump. Maybe you wanna bump 'component.json' as well ?

updateConfigs

Sometimes you load the content of package.json into a grunt config. This will update the config property, so that even tasks running in the same grunt process see the updated value.

bump: {
  files:         ['package.json', 'component.json'],
  updateConfigs: ['pkg',          'component']
}

commit

Do you wanna commit the changes ?

commitMessage

If so, what is the commit message ? You can use %VERSION% which will get replaced with the new version.

Set to a custom message with --commit [your message]:

grunt bump --commit 'i fixed the bug in foo'

(note this requires that you keep the syntax grunt.option('commit') in the bump configuration as shown above)

commitFiles

An array of files that you wanna commit. You can use ['-a'] to commit all files.

createTag

Do you wanna create a tag ?

tagName

If so, this is the name of that tag (%VERSION% placeholder is available).

tagMessage

Yep, you guessed right, it's the message of that tag - description (%VERSION% placeholder is available).

push

Do you wanna push all these changes ?

pushTo

If so, which remote branch would you like to push to ?

About

Grunt.js plugin - Increment package version.


Languages

Language:JavaScript 92.1%Language:CoffeeScript 7.9%