No commit activity in last 3 years
No release in over 3 years
Composer support for Capistrano 3.x
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.3
>= 0

Runtime

 Project Readme

Capistrano::Composer

Composer support for Capistrano 3.x

Installation

Add this line to your application's Gemfile:

gem 'capistrano', '~> 3.0.0'
gem 'capistrano-composer'

And then execute:

$ bundle

Or install it yourself as:

$ gem install capistrano-composer

Usage

Require the module in your Capfile:

require 'capistrano/composer'

capistrano/composer comes with 5 tasks:

  • composer:install
  • composer:install_executable
  • composer:dump_autoload
  • composer:self_update
  • composer:run

The composer:install task will run before deploy:updated as part of Capistrano's default deploy, or can be run in isolation with:

$ cap production composer:install

By default it is assumed that you have the composer executable installed and in your $PATH on all target hosts.

Configuration

Configurable options, shown here with defaults:

set :composer_install_flags, '--no-dev --no-scripts --quiet --optimize-autoloader'
set :composer_roles, :all
set :composer_dump_autoload_flags, '--optimize'
set :composer_download_url, "https://getcomposer.org/installer"
set :composer_version, '1.0.0-alpha8' #(default: not set)

Installing composer as part of a deployment

Add the following to deploy.rb to manage the installation of composer during deployment (composer.phar is install in the shared path).

SSHKit.config.command_map[:composer] = "#{shared_path.join("composer.phar")}"

namespace :deploy do
  before :starting, 'composer:install_executable'
end

Accessing composer commands directly

This library also provides a composer:run task which allows access to any composer command.

From the command line you can run

$ cap production composer:run['status','--profile']

Or from within a rake task using capistrano's invoke

task :my_custom_composer_task do
  invoke "composer:run", :update, "--dev --prefer-dist"
end

Contributing

  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