Skip to content

Instantly share code, notes, and snippets.

@josephbridgwaterrowe
Last active August 29, 2015 14:19
Show Gist options
  • Save josephbridgwaterrowe/272a440e74782fb86a1a to your computer and use it in GitHub Desktop.
Save josephbridgwaterrowe/272a440e74782fb86a1a to your computer and use it in GitHub Desktop.
Sample deploy file
lock '3.3.5'
set :application, 'app'
set :repo_url, ''
set :branch, 'master'
set :user, 'deploy'
set :deploy_to, '/var/www/app'
set :linked_files, %w{config/application.yml config/aws.yml config/database.yml config/secrets.yml}
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}
set :keep_releases, 5
set :normalize_asset_timestamps, %w{public/images public/javascripts public/stylesheets}
namespace :deploy do
desc 'Restart application'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
execute :service, :unicorn, :upgrade
within release_path do
execute :bundle, :exec, :whenever, '--write-crontab'
end
end
end
after :publishing, :link_www do
on roles(:app) do
within release_path do
execute :rm, '-f', '/var/www/current'
execute :ln, '-s', release_path, '/var/www/current'
end
end
end
after :publishing, :restart
after :publishing, "deploy:assets:precompile"
web_servers = %w{}
namespace :assets do
task :precompile do
run_locally do
execute 'RAILS_ENV=production', :bundle, :exec, :rake, 'assets:precompile'
end
web_servers.each do |web_server|
puts "Deploying to web server: #{web_server}"
run_locally do
execute :ssh, "www@#{web_server}", "mkdir -p #{release_path}"
execute :rsync, "-av ./public www@#{web_server}:#{release_path}"
execute :ssh, "www@#{web_server}", "rm -f #{deploy_to}/current"
execute :ssh, "www@#{web_server}", "ln -s #{release_path} #{deploy_to}/current"
end
end
run_locally do; execute :rm, '-rf public/assets'; end
end
end
end
server 'app',
user: 'deploy',
port: 22,
roles: %w{app db}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment