This gem will let you run Grunt tasks with Capistrano 3.x.


Add this line to your application's Gemfile:

gem 'capistrano', '~> 3.0'
gem 'capistrano-grunt', github: 'roots/capistrano-grunt'

And then execute:

$ bundle install
  1. Add to Capfile or config/deploy.rb:
require 'capistrano/grunt'


Set what Grunt tasks you want run in your deploy.rb file:

set :grunt_tasks, 'deploy:production'

If you don't set :grunt_tasks, Grunt will run without any task specified. (equivalent to just running grunt from the command line).

To run multiple tasks (can be string or array of strings):

set :grunt_tasks, 'deploy:production cdn'
set :grunt_tasks, %w{deploy:production cdn}

The above would be equivalent of running the following from the command line:

grunt deploy:production cdn

Then add the task to your deploy.rb:

before :updated, 'grunt'


To specify a Gruntfile, use the :grunt_file option:

set :grunt_file, -> { release_path.join('config/Gruntfile.js') }

Configurable options:

set :grunt_file, nil                                # default
set :grunt_tasks, nil                               # default
set :grunt_flags, '--no-color'                      # default
set :grunt_roles, :all                              # default
set :grunt_target_path, release_path.join('subdir') # default not set


  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