grunt-build-lifecycle
Flexible build lifecycles for grunt
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-build-lifecycle --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt;
The "lifecycle" task
Inspired by the maven build lifecycle, the lifecycle
task allows you to tame your grunt tasks with a consistent build lifecycle.
This means that the process for compiling, testing, and packaging a particular project is clearly defined. For the person building a project, this means that it is only necessary to learn a small set of commands to build any project, and the lifecycle
task will ensure they get the results they desired.
Example
In your project's Gruntfile, add a section named lifecycle
to the data object passed into grunt.initConfig()
.
grunt;
This will create the following grunt tasks: validate
, compile
, test
, package
, integration-test
, verify
, install
, and deploy
. Running any of these tasks will run all the preceding lifecycle tasks sequentially.
For example, grunt test
runs the validate
, compile
, and test
tasks.
Phase Tasks
You can run build phases individually with grunt phase-<name>
, where name is one of the lifecycles.
For example, based on the above example grunt phase-compile
runs the coffee
and compass
tasks.
Skip that
Additionally, you can skip phases with the --skip
parameter.
For example, grunt install --skip=validate,test
will skip the validate
and test
phases.
To skip all tests phases, use --skipMatch=test
.
Roll your own
Perhaps maven-ish build cycles are not your thing, you can define your own set of lifecycle phases. Here's another example. Just remeber, consistency is a good thing.
grunt;
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.