require "bundler/capistrano"
require "capistrano/ext/multistage"
require "rvm/capistrano"
require "delayed/recipes"
set :stages, %(production staging)
set :default_stage, "staging"
set :application, "education_site"
set :user, "e-user"
set :scm, "git"
set :repository, "g...@github.com:xxxxxxx"
set :deploy_via, :remote_cache
set :copy_compression, :bz2
set :git_shallow_clone, 1
set :scm_verbose, true
set :use_sudo, false
default_run_options[:pty] = true
ssh_options[:forward_agent] = true
set :keep_releases, 6
after "deploy:restart", "deploy:cleanup"
# If you are using Passenger mod_rails uncomment this:
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
end
end
# Delayed Job hooks
set :delayed_job_command, "bin/delayed_job"
after "deploy:stop", "delayed_job:stop"
after "deploy:start", "delayed_job:start"
after "deploy:restart", "delayed_job:restart"
set :rvm_ruby_string, '2.1.5'
set :bundle_without, [:development]
set :rvm_type, :system
server "xx.xx.xx.xx", :web, :app, :db, :primary => true
set :deploy_to, "/var/www/application"
set :rails_env, 'test'
set :app_env, 'test'
# Whenever
set :whenever_environment, defer { "#{rails_env}" }
set :whenever_identifier, defer { "#{application}_#{stage}" }
set :whenever_command, "bundle exec whenever"
require "whenever/capistrano"
set :shared_children, shared_children + %w{public/uploads}
set :branch, "master"
namespace :robots do
desc "Symlink robots.txt file to public folder on current"
task :symlink_robots, :roles => :app do
run "ln -nfs #{shared_path}/config/robots.txt #{release_path}/public/robots.txt"
end
after 'deploy:update_code', 'robots:symlink_robots'
end