Created
September 29, 2010 10:44
-
-
Save bogdan/602547 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'capistrano/ext/multistage' | |
set :stages, %w(staging production) | |
set :default_stage, "staging" | |
#set :branch, "default" | |
set :scm, :git | |
set :scm_verbose, false | |
set :repository, "[email protected]:railsware/startwire.git" | |
ssh_options[:forward_agent] = true | |
default_run_options[:pty] = true | |
set :keep_releases, 5 | |
#this block is fix of strange process/reaper error during deployment. | |
deploy.task :restart do | |
run "touch #{current_path}/tmp/restart.txt" | |
end | |
after "deploy:update_code", "deploy:setup_rails" | |
after "deploy:restart", "deploy:god:restart" | |
namespace :deploy do | |
desc "Setup rails environment" | |
task :setup_rails do | |
run "ln -s #{deploy_to}/#{shared_dir}/config/initializers/local_initializer.rb #{current_release}/config/initializers/local_initializer.rb" | |
run "ln -s #{deploy_to}/#{shared_dir}/config/database.yml #{current_release}/config/database.yml" | |
run "ln -s #{deploy_to}/#{shared_dir}/config/resque.yml #{current_release}/config/resque.yml" | |
run "ln -s #{deploy_to}/#{shared_dir}/config/sunspot.yml #{current_release}/config/sunspot.yml" | |
run "ln -s #{deploy_to}/#{shared_dir}/solr #{current_release}/solr" | |
run "rm -f #{current_release}/solr/conf" | |
run "ln -s #{current_release}/vendor/config/solr #{current_release}/solr/conf" | |
run "rm -f #{current_release}/log" | |
run "ln -s #{deploy_to}/#{shared_dir}/log #{current_release}/" | |
run "bundle install --gemfile=#{current_release}/Gemfile" | |
run "cd #{current_release}/ && rake db:migrate RAILS_ENV=#{rails_env}" | |
end | |
namespace :god do | |
desc "Starting and stopping via god." | |
task :start do | |
Dir["#{current_path}/config/god/*.god"].each { |f| | |
sudo "RAILS_ENV=#{rails_env} RAILS_ROOT=#{current_path} #{god_executable} load #{f}" | |
} | |
sudo "RAILS_ENV=#{rails_env} RAILS_ROOT=#{current_path} #{god_executable} load #{current_path}/config/god/resque.god" | |
sudo "#{god_executable} start #{god_group}" | |
end | |
desc "Starting and stopping via god." | |
task :restart do | |
sudo "#{god_executable} restart #{god_group}" | |
end | |
desc "Starting and stopping via god." | |
task :stop do | |
sudo "#{god_executable} stop #{god_group}" | |
sudo "#{god_executable} remove #{god_group}" | |
end | |
desc "Get status for god processes" | |
task :status_all do | |
sudo "#{god_executable} status #{god_group}" | |
end | |
desc "Get status for god specified process" | |
task :status do | |
sudo "#{god_executable} status #{proc}" | |
end | |
end | |
desc "Populate database with fake data" | |
task :populate do | |
run "cd #{current_path}" | |
sudo "service nginx stop || true" | |
run "cd #{current_path} && RAILS_ROOT=#{current_path} RAILS_ENV=#{rails_env} rake -f #{current_path}/Rakefile db:populate" | |
sudo "service nginx start" | |
end | |
end | |
namespace :maintenance do | |
desc "Reboot the server" | |
task :reboot do | |
sudo "reboot" | |
end | |
desc "Show hostname" | |
task :uname do | |
run "uname -a" | |
end | |
end | |
Dir[File.join(File.dirname(__FILE__), '..', 'vendor', 'gems', 'hoptoad_notifier-*')].each do |vendored_notifier| | |
$: << File.join(vendored_notifier, 'lib') | |
end | |
require 'hoptoad_notifier/capistrano' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment