Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'bundler/capistrano'
- server "xxxxxxxxxxxxx", :web, :app, :db, primary: true
- set :application, "myapp"
- set :user, "deployer"
- set :deploy_to, "/home/#{user}/apps/#{application}"
- set :deploy_via, :remote_cache
- set :use_sudo, false
- set :scm, :git
- set :repository, "git@github.com:pedro/myapp.git"
- set :branch, "master"
- default_run_options[:pty] = true
- ssh_options[:forward_agent] = true
- set :rails_env, "production"
- after "deploy", "deploy:cleanup" # keep only the last 5 releases
- namespace :deploy do
- %w[start stop restart].each do |command|
- desc "#{command} unicorn server"
- task command, roles: :app, except: {no_release: true} do
- run "/etc/init.d/unicorn_#{application} #{command}"
- end
- end
- task :setup_config, roles: :app do
- sudo "ln -nfs #{current_path}/config/nginx.conf /etc/nginx/sites-enabled/#{application}"
- sudo "ln -nfs #{current_path}/config/unicorn_init.sh /etc/init.d/unicorn_#{application}"
- run "mkdir -p #{shared_path}/config"
- put File.read("config/database.example.yml"), "#{shared_path}/config/database.yml"
- puts "Now edit the config files in #{shared_path}."
- end
- after "deploy:setup", "deploy:setup_config"
- task :socialstream_config, roles: :app do
- puts " ##################### socialstream config ############################"
- run "cd #{release_path} && bundle update --trace RAILS_ENV=production"
- run "cd #{release_path} && bundle exec rake db:drop --trace RAILS_ENV=production"
- run "cd #{release_path} && bundle exec rake db:create --trace RAILS_ENV=production"
- run "cd #{release_path} && bundle exec rake social_stream:migrations:update --trace #RAILS_ENV=production"
- run "cd #{release_path} && bundle exec rake db:migrate --trace RAILS_ENV=production"
- run "cd #{release_path} && bundle exec rake workers:start --trace RAILS_ENV=production"
- puts " ##################### socialstream config ############################"
- end
- before "deploy:migrate","deploy:socialstream_config"
- task :sphinx_config, roles: :app do
- puts " ##################### sphinx ############################"
- run "cd #{release_path} && bundle exec rake ts:config --trace RAILS_ENV=production"
- run "cd #{release_path} && bundle exec rake ts:rebuild --trace RAILS_ENV=production"
- run "cd #{release_path} && bundle exec rake ts:in --trace RAILS_ENV=production"
- puts " ##################### sphinx ############################"
- end
- after "deploy:migrate","deploy:sphinx_config"
- task :symlink_config, roles: :app do
- run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
- end
- after "deploy:finalize_update", "deploy:symlink_config"
- desc "Make sure local git is in sync with remote."
- task :check_revision, roles: :web do
- unless `git rev-parse HEAD` == `git rev-parse origin/master`
- puts "WARNING: HEAD is not the same as origin/master"
- puts "Run `git push` to sync changes."
- exit
- end
- end
- before "deploy", "deploy:check_revision"
- end
Add Comment
Please, Sign In to add comment