Skip to content
Plugin for Mina that adds support for multiple stages.
Branch: master
Clone or download
Latest commit 7711dae Oct 19, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib/mina Update version to 1.0.3 Oct 19, 2016
.gitignore Initial Commit Sep 29, 2013
Gemfile Initial Commit Sep 29, 2013
LICENSE.txt Initial Commit Sep 29, 2013
README.md Update readme to correct typos and reorganize content Mar 31, 2015
Rakefile Initial Commit Sep 29, 2013
mina_multistage.gemspec Update version to 1.0.3 Oct 19, 2016

README.md

Gem Version Stories in Ready

Mina::Multistage

Plugin for Mina that adds support for multiple stages.

Installation & Usage

Add this line to your application's Gemfile:

gem 'mina-multistage', require: false

And then execute:

$ bundle

Or install it yourself as:

$ gem install mina-multistage

Require mina/multistage in your config/deploy.rb:

require 'mina/multistage'
require 'mina/bundler'
require 'mina/rails'
require 'mina/git'

...

task setup: :environment do
  ...
end

desc 'Deploys the current version to the server.'
task deploy: :environment do
  ...
end

Then run:

$ bundle exec mina multistage:init

This will create config/deploy/staging.rb and config/deploy/production.rb stage files. Use them to define stage specific configuration.

# config/deploy/staging.rb
set :domain, 'example.com'
set :deploy_to, '/var/www/my_app'
set :repository, 'https://github.com/user/repo'
set :branch, 'master'
set :user, 'www'
set :rails_env, 'staging'

If you receive the following error, make sure that you've required 'mina/multistage' in your config/deploy.rb

$ bundle exec mina multistage:init
mina aborted!
Don't know how to build task 'multistage:init'

Now you can deploy the default stage with:

$ mina deploy # this deploys staging by default

Or specify a stage explicitly:

$ mina staging deploy
$ mina production deploy

Configuration

  • stages - array of stages names, the default is the name of all *.rb files from stages_dir
  • stages_dir - stages files directory, the default is config/deploy
  • default_stage - default stage, the default is staging

If you want to override the default values for any of these options, they should be set before requiring mina/multistage.

# config/deploy.rb

set :stages, %w(development test staging production)
set :stages_dir, 'config/deploy_stages'
set :default_stage, 'development'

require 'mina/multistage'
require 'mina/bundler'
require 'mina/rails'
require 'mina/git'

...

task setup: :environment do
  ...
end

desc 'Deploys the current version to the server.'
task deploy: :environment do
  ...
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
You can’t perform that action at this time.