grunt-bumper

Bump package version, run tasks, git tag, commit & push.

npm install grunt-bumper
1 downloads in the last day
3 downloads in the last week
17 downloads in the last month

grunt-bumper

Build Status Dependency Status NPM version

Bump package version, run tasks, git tag, commit & push.

This is based on grunt-push-release

Getting Started

This plugin requires Grunt ~0.4.1

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-bumper --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-bumper');

Options

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

bumper:
  options:
      files: ["package.json"]
      updateConfigs: ['pkg'] # array of config properties to update (with files)
      releaseBranch: false
      runTasks: true
      tasks: ["default"]
      add: true
      addFiles: ["."] # '.' for all files except ingored files in .gitignore
      commit: true
      commitMessage: "Release v%VERSION%"
      commitFiles: ["-a"] # '-a' for all files
      createTag: true
      tagName: "v%VERSION%"
      tagMessage: "Version %VERSION%"
      push: true
      pushTo: "origin"
      npm: false
      npmTag: "Release v%VERSION%"
      gitDescribeOptions: "--tags --always --abbrev=1 --dirty=-d"

files

Type Array Default ['package.json']

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

updateConfigs

Type Array Default ['pkg']

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.

bumper:
  options:
    files:         ["package.json", "bower.json"]
    updateConfigs: ["pkg",          "bower"]

releaseBranch

Type Boolean Default false

Define branch(es) on which it is allowed to make releases. Either define a single one as string or severals as array. This helps to not accidentially make a release on a topic branch.

push: {
  releaseBranch: ['develop', 'master']
}

runTasks

Type Boolean Default true

Do you want to run tasks after bumping the version?

tasks

Type Array Default ['default']

List of tasks to be executed after bumping the version and before adding/commiting the files. Note: as this is being executed as a child process you are running in a different context!

add

Type Boolean Default true

Do you want to git add files?

addFiles

Type Array Default ['.']

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

commit

Type Boolean Default true

Do you wanna commit the changes?

commitMessage

Type String Default 'Release v%VERSION%'

The commit message. You can use %VERSION% which will get replaced with the new version.

commitFiles

Type Array Default ['-a']

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

createTag

Type Boolean Default true

Do you want to create a git tag?

tagName

Type String Default 'v%VERSION%'

The tag name. You can use %VERSION% which will get replaced with the new version.

tagMessage

Type String Default 'Version v%VERSION%'

The tag message. You can use %VERSION% which will get replaced with the new version.

push

Type Boolean Default true

Do you want to push all these changes?

pushTo

Type String Default 'origin'

Name of the remote branch to push to.

npm

Type Boolean Default false

Do you wanna publish all these changes to NPM?

Make sure you have registered an npm used: 'npm adduser'

npmTag

Type String Default 'Release v%VERSION%'

The name of the tag. You can use %VERSION% which will get replaced with the new version.

Example Usage

Let's say current version is 0.0.1.

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

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

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

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

$ grunt bumper: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

You can use bump-only and bump-commit to call each step separately.

$ grunt bumper-only:minor
$ grunt bumper-commit
$ grunt bumper-release //This will do a full push and publish to npm even if you have configured npm option to false
$ grunt bumper-publish //Just publishes to NPM overriding (npm option: false)

Contributing

I Love Open Source

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

License

Copyright (c) We Are Interactive under the MIT license.

Bitdeli Badge

npm loves you