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