chalasdev/capistrano-bundle

Symfony/console command that provide automation of your deployment workflow on top of Capistrano.


Keywords
Symfony2, deploy, bundle, workflow, capifony, production, capistrano
License
GPL-3.0

Documentation

RCH/CapistranoBundle

Build Status SensioLabsInsight

Integrates deployment as part of your development environment.

  • Sets up a fast and automated deployment workflow
  • Creates stagings in configuration format (YAML, PHP, XML)
  • Controls tasks execution order through namespaces
  • Generates custom tasks and environment variables.

Prerequisites

  • Ruby >= 2.0

This version of the bundle requires Symfony 3+.
For a Symfony version between 2.4.x and the last LTS release, please use the 1.0 branch.

Installation

Download the bundle

$ composer require rch/capistrano-bundle:~2.0

This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.

Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in the app/AppKernel.php file of your project:

// app/AppKernel.php

$bundles = array(
    // ...
    new RCH\CapistranoBundle\RCHCapistranoBundle(),
);

Install & Configure Capistrano

Build installation files for capistrano

$ app/console rch:deploy:install

Install dependencies

$ bundle install

Usage

Setup deployment configuration in interactive mode

$ app/console rch:deploy:setup

Build Stagings

# app/config/rch/stagings/[staging].yml

# Remote host
domain: 'ssh_host'
# Remote user
user: 'ssh_user'
# Remote key              
keys: '/home/ssh_user/.ssh/id_rsa'
# Forward Agent
forward_agent: 'false'
# Authentication mode
auth_methods: 'publickey password'
# Deployment path
deploy_to: '/path/to/deploy'            

Run deployment

$ app/console rch:deploy:run --staging-name=[STAGING-NAME]

Advanced usage

Look at the capistrano documentation.

Contributing

This bundle needs help! For the contribution guidelines, see the CONTRIBUTING.md distributed file.

Todo

  • Command\Generate\GenerateStagingCommand, takes an yaml file as optional argument (even look for an existing if the argument is not set) and generates a staging for capistrano in interactive mode (optional).

  • Make the path of config files (staging, task) configurable using a bundle Extension.

  • Handle XML/PHP in GenerateStagingCommand.

License

License