https://github.com/capistrano/composer
Capistrano extension for Composer tasks
https://github.com/capistrano/composer
Last synced: 11 months ago
JSON representation
Capistrano extension for Composer tasks
- Host: GitHub
- URL: https://github.com/capistrano/composer
- Owner: capistrano
- License: mit
- Created: 2013-06-06T16:59:45.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2019-07-10T13:05:24.000Z (about 7 years ago)
- Last Synced: 2024-12-18T01:20:07.473Z (over 1 year ago)
- Language: Ruby
- Size: 27.3 KB
- Stars: 183
- Watchers: 14
- Forks: 48
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Capistrano::Composer
Composer support for Capistrano 3.x
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'capistrano', '~> 3.1.0'
gem 'capistrano-composer'
```
And then execute:
$ bundle
Or install it yourself as:
$ gem install capistrano-composer
## Usage
Require the module in your `Capfile`:
```ruby
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:
```bash
$ 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:
```ruby
set :composer_install_flags, '--no-dev --no-interaction --quiet --optimize-autoloader'
set :composer_roles, :all
set :composer_working_dir, -> { fetch(:release_path) }
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).
```ruby
SSHKit.config.command_map[:composer] = "php #{shared_path.join("composer.phar")}"
namespace :deploy do
after :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
```bash
$ cap production composer:run['status','--profile']
```
Or from within a rake task using capistrano's `invoke`
```ruby
task :my_custom_composer_task do
invoke "composer:run", :update, "--dev --prefer-dist"
end
```
### Removing the default install task
If you do not want to run the default install task on `deploy:updated`, (for
example, if you do not have root level dependencies stored in a `composer.json`
you can remove it by adding the following line to your `config/deploy.rb`:
```ruby
Rake::Task['deploy:updated'].prerequisites.delete('composer:install')
```
You can then call `composer.install` task within your own defined tasks, at an
appropriate juncture.
## 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