On Dec 14, 2010, at 2:10 PM, craayzie wrote:
> I've done some searching on a guide for how to use capistrano + git +
> bundler to deploy radiant 0.9.1 but haven't had much success in
> finding something comprehensive. Is deploying radiant the same as
> deploying a Rails app?
Our cap recipes don't differ that much from a standard Rails app. Most of the
additions are rake tasks, and we do overwrite deploy:migrate, so that existing
Rails-based cap tasks and hooks will still fire in the right sequence.
If you're deploying to different environments or servers, I'd recommend using
the capistrano-ext gem. It lets you do this:
$ cap staging deploy
$ cap production deploy
You can tailor your recipes and cap variables based on the environment. Here's
the relevant parts of our Radiant recipe:
Capistrano::Configuration.instance.load do
namespace :radiant do
desc "Updates extension assets"
task :update_assets do
run "cd #{current_path} && rake radiant:extensions:update_all
RAILS_ENV=#{stage}"
end
after 'deploy:symlink', 'radiant:update_assets'
desc "Migrates Radiant extensions"
task :migrate_extensions do
run "cd #{release_path} && rake db:migrate:extensions
RAILS_ENV=#{stage}"
end
after 'deploy:migrate', 'radiant:migrate_extensions'
end
namespace :deploy do
task :migrate, :roles => :db, :only => { :primary => true } do
rake = fetch(:rake, "rake")
rails_env = fetch(:rails_env, "production")
migrate_env = fetch(:migrate_env, "")
run "cd #{release_path}; #{rake} RAILS_ENV=#{rails_env}
#{migrate_env} db:migrate"
end
end
end