From a7e90214f2b2774515b1ceb58b2cd3ad422a8189 Mon Sep 17 00:00:00 2001 From: Derek Watson Date: Sat, 22 Feb 2014 23:09:29 -0500 Subject: [PATCH] documented multiple environment config --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/README.md b/README.md index b669d5b..24be975 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,56 @@ activate :deploy do |deploy| end ``` +### Multiple Environments + +Deploy your site to more than one configuration using environment variables. + +```ruby +# config.rb + +case ENV['TARGET'].to_s.downcase +when 'production' + activate :deploy do |deploy| + deploy.method = :rsync + deploy.host = "www.example.com" + deploy.path = "/srv/www/production-site" + end +else + activate :deploy do |deploy| + deploy.method = :rsync + deploy.host = "staging.example.com" + deploy.path = "/srv/www/staging-site" + end +end +``` + + $ TARGET=staging bundle exec middleman deploy + $ TARGET=production bundle exec middleman deploy + +Tighten this up with some custom Rake tasks + +```ruby +# Rakefile + +namespace :deploy do + def deploy(env) + puts "Deploying to #{env}" + exec "TARGET=#{env} bundle exec middleman deploy" + end + + task :staging do + deploy :staging + end + + task :production do + deploy :production + end +end +``` + + $ rake deploy:staging + $ rake deploy:production + ## Breaking Changes * `v0.1.0`