Files

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