144 lines
4.6 KiB
Ruby
144 lines
4.6 KiB
Ruby
# config valid only for Capistrano 3.1
|
|
# lock '3.2.1'
|
|
#require 'capistrano/local_precompile'
|
|
|
|
set :application, 'mozo.bar'
|
|
#set :repo_url, 'root@uflows.com:/var/git/mozo.git'
|
|
set :repo_url, '/var/git/mozo-backend.git'
|
|
|
|
# Default branch is :master
|
|
# ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }.call
|
|
|
|
# Default deploy_to directory is /var/www/my_app
|
|
# set :deploy_to, '/var/www/my_app'
|
|
|
|
set :deploy_via, :remote_cache
|
|
set :branch, :master
|
|
set :user, 'root'
|
|
set :deploy_to, '/var/www/mozo.bar'
|
|
set :bundle_without, %w[development test assets].join(' ')
|
|
# Default value for :scm is :git
|
|
# set :scm, :git
|
|
|
|
# Default value for :format is :pretty
|
|
# set :format, :pretty
|
|
|
|
# Default value for :log_level is :debug
|
|
# set :log_level, :debug
|
|
|
|
# Default value for :pty is false
|
|
# set :pty, true
|
|
|
|
# Default value for :linked_files is []
|
|
# set :linked_files, %w{config/database.yml}
|
|
# append :linked_files, 'config/puma.rb'
|
|
set :puma_bind, "unix://#{shared_path}/tmp/sockets/puma.sock"
|
|
|
|
# Default value for linked_dirs is []
|
|
set :linked_dirs, %w{log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system public/assets}
|
|
|
|
# Default value for default_env is {}
|
|
# set :default_env, { path: "/opt/ruby/bin:$PATH" }
|
|
#set :default_env, {'DEPLOY' => 'yes'}
|
|
|
|
set :puma_threads, [4, 16]
|
|
set :puma_workers, 2
|
|
set :puma_bind, "unix://#{shared_path}/tmp/sockets/app.sock"
|
|
set :puma_state, "#{shared_path}/tmp/pids/puma.state"
|
|
set :puma_pid, "#{shared_path}/tmp/pids/puma.pid"
|
|
set :puma_access_log, "#{release_path}/log/puma.error.log"
|
|
set :puma_error_log, "#{release_path}/log/puma.access.log"
|
|
set :puma_preload_app, true
|
|
set :puma_worker_timeout, nil
|
|
set :puma_init_active_record, false # Change to true if using ActiveRecord
|
|
|
|
# Default value for keep_releases is 5
|
|
# set :keep_releases, 5
|
|
|
|
namespace :deploy do
|
|
|
|
desc 'Restart application'
|
|
task :restart do
|
|
on roles(:app), in: :sequence, wait: 5 do
|
|
# Your restart mechanism here, for example:
|
|
within release_path do
|
|
#execute :rake, 'cache:clear', as: 'www-data'
|
|
#with rails_env: fetch(:rails_env) do
|
|
#execute :rake, 'dedigest_assets', as: 'www-data'
|
|
#end
|
|
end
|
|
#execute :chown, "-R www-data:www-data", release_path
|
|
#execute :chown, "-R www-data:www-data", release_path.join('public/assets/')
|
|
#execute :kill, capture("lsof -i:9022 -t") # kill counters, will reboot itself
|
|
execute :touch, release_path.join('tmp/restart.txt')
|
|
#execute :monit, :restart, 'puma_mozo.bar_production'
|
|
execute 'systemctl restart mozo.bar'
|
|
end
|
|
end
|
|
|
|
task :update_remote_cache do
|
|
on roles(:app), in: :sequence, wait: 5 do
|
|
within shared_path.join('cached-copy') do
|
|
execute :git, :pull
|
|
end
|
|
end
|
|
end
|
|
|
|
task :build_drb_counter do
|
|
|
|
end
|
|
|
|
namespace :assets do
|
|
|
|
Rake::Task['deploy:assets:precompile'].clear_actions
|
|
Rake::Task['deploy:assets:backup_manifest'].clear_actions
|
|
|
|
desc 'Precompile assets locally and upload to servers'
|
|
task :precompile do
|
|
on roles(fetch(:assets_roles)) do
|
|
run_locally do
|
|
with rails_env: fetch(:stage) do
|
|
execute "RAILS_GROUPS=assets RAILS_ENV=#{fetch(:stage)} DEPLOY=yes bundle exec rails assets:precompile"
|
|
execute "RAILS_GROUPS=assets RAILS_ENV=#{fetch(:stage)} DEPLOY=yes bundle exec rails assets:dedigest"
|
|
#execute "RAILS_GROUPS=assets RAILS_ENV=#{fetch(:stage)} DEPLOY=yes bin/rake assets:gzip"
|
|
end
|
|
end
|
|
|
|
#within release_path do
|
|
#with rails_env: fetch(:rails_env) do
|
|
#upload!('./public/assets/', "#{shared_path}/public/", recursive: true)
|
|
#end
|
|
#end
|
|
rsync_host = host
|
|
run_locally { execute "rsync -azv --delete --ignore-times ./public/assets/ #{fetch(:user)}@#{rsync_host}:#{shared_path}/public/assets/" }
|
|
#run_locally { execute "rsync -av ./public/assets/ #{fetch(:user)}@#{rsync_host}:#{shared_path}/public/assets/" }
|
|
execute :chown, "-R www-data:www-data", shared_path.join('public/assets/')
|
|
|
|
#run_locally { execute 'rm -rf public/assets' }
|
|
end
|
|
end
|
|
|
|
end
|
|
#desc 'Set config/puma.rb-symlink for upstart'
|
|
#task :puma_config do
|
|
#on roles(:app) do
|
|
#execute "ln -sf #{shared_path}/puma.rb #{release_path}/config/puma.rb"
|
|
#end
|
|
#end
|
|
#after :finishing, :puma_config
|
|
|
|
after :publishing, :restart do
|
|
#deploy.update_remote_cache
|
|
end
|
|
|
|
after :restart, :clear_cache do
|
|
on roles(:web), in: :groups, limit: 3, wait: 10 do
|
|
# Here we can do anything such as:
|
|
#within release_path do
|
|
##execute :rake, 'cache:clear', as: 'www-data'
|
|
#end
|
|
end
|
|
end
|
|
|
|
end
|