grunt-bump-build-git

Bump the version, build the project and add, commit and tag in git in one step.

npm install grunt-bump-build-git
7 downloads in the last day
22 downloads in the last week
119 downloads in the last month

grunt bump build git

Bump the version, build the project and add, commit and tag in git in one step.

Table of contents

Getting Started

This plugin requires Grunt ~0.4.2

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-bump-build-git --save-dev

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

grunt.loadNpmTasks('grunt-bump-build-git');

The build task

Overview

This task allows you to bump your project version, update all available package files (package.json, bower.json, etc.), build the project with your custom tasks and the updated package confg version and add, commit and tag the new release in git - all in one step.

Usage Examples

Setup

This task doesn't require any configuration setup, but allows to set custom options the following way:

In your project's Gruntfile, add a section named build to the data object passed into grunt.initConfig().

grunt.initConfig({
  build: {
    tasks: ['default'],
    packageConfig: 'pkg',
    packages: '*.json',
    jsonSpace: 2,
    jsonReplacer: undefined,
    gitAdd: '--all'
  },
})

Build test

Build the project and create a new meta version (e.g. 1.2.3+build.1382987826059):

grunt build

Releases

Build the project and bump the major version (major.minor.patch):

grunt build:major

Build the project and bump the minor version (major.minor.patch):

grunt build:minor

Build the project and bump the patch version (major.minor.patch):

grunt build:patch

Build the project and bump the version to a major/minor/patch prerelease:

grunt build:major-rc.1

Build the project and bump the prerelease version (major.minor.patch-prerelease):

grunt build:pre

Build the project with a specific semver identifier as version:

grunt build:1.2.3-rc.4+test.5

Git integration

Build the project and run git add, git commit and git tag automatically:

grunt build:patch:"Fixed #42"

This adds all unstaged files and commits the changes with the given message to the Git repository.
The message is also used to create an annotated tag with the updated package version as tag name.

To build and commit a test version without creating a tag, run the following command:

grunt build::"Test build"

Colons in commit messages:

If you want to use colons in commit messages, escape them with a backslash:

grunt build:minor:"Set visibility\:true by default."

Options

build.tasks

Type: Array
Default value: ['default']

The list of custom tasks to run after bumping the package version and before running the git tasks.

build.packageConfig

Type: String
Default value: 'pkg'

The name of the config object with the package version.

build.packages

Type: String
Default value: '*.json'

The location of the JSON package files, passed as parameter to grunt.file.expand.

build.jsonSpace

Type: Integer
Default value: 2

The space parameter to JSON.stringify used to render the JSON package files.

build.jsonReplacer

Type: function|Array
Default value: undefined

The replacer parameter to JSON.stringify used to render the JSON package files.

build.gitAdd

Type: String|Boolean
Default value: '--all'

The shell parameters passed to git add.
Set to false to disable calling git add on build runs.

Contributing

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.

Release History

  • 2013-12-27   v1.1.1   Escape colons in git commit messages.
  • 2013-11-28   v1.1.0   Added gitAdd build option.
  • 2013-10-29   v1.0.0   Initial release.
npm loves you