-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeploy.rb
97 lines (78 loc) · 2.62 KB
/
deploy.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# frozen_string_literal: true
# config valid for current version and patch releases of Capistrano
lock '~> 3.16.0'
set :application, 'trunk'
set :repo_url, 'https://github.com/ideacrew/polypress.git'
# Default branch is :master
# ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp
# Default deploy_to directory is /var/www/my_app_name
set :deploy_to, '/var/www/deployments/polypress'
set :rails_env, 'production'
# Default value for :format is :airbrussh.
# set :format, :airbrussh
# You can configure the Airbrussh format using :format_options.
# These are the defaults.
# set :format_options, command_output: true, log_file: "log/capistrano.log", color: :auto, truncate: :auto
set :bundle_binstubs, false
set :bundle_flags, '--quiet'
set :bundle_path, nil
# Default value for :pty is false
set :pty, true
# Default value for :linked_files is []
# append :linked_files, "config/database.yml"
set :linked_files,
(
fetch(:linked_files, []) | %w[
config/mongoid.yml
config/initializers/devise.rb
config/environments/production.rb
config/unicorn.rb
eyes/polypress.eye.rb
config/master.key
config/credentials.yml.enc
]
)
# Default value for linked_dirs is []
append :linked_dirs, 'log', 'pids', 'tmp/sockets', 'public/sbc', 'eye'
# Default value for default_env is {}
# set :default_env, { path: "/opt/ruby/bin:$PATH" }
# Default value for local_user is ENV['USER']
# set :local_user, -> { `git config user.name`.chomp }
# Default value for keep_releases is 5
# set :keep_releases, 5
# Uncomment the following to require manually verifying the host key before first deploy.
# set :ssh_options, verify_host_key: :secure
namespace :assets do
desc 'Kill all the assets'
task :refresh do
on roles(:web) do
within release_path do
with rails_env: fetch(:rails_env) do
execute(
"cd #{release_path} && rm -rf node_modules && rm -f package-lock.json"
)
execute("cd #{release_path} && nvm use 10 && yarn install")
# execute :rake, "assets:clobber"
execute(
"cd #{release_path} && nvm use 10 && RAILS_ENV=production NODE_ENV=production bundle exec rake assets:precompile"
)
end
end
end
end
end
after 'deploy:updated', 'assets:refresh'
namespace :deploy do
desc 'Restart application'
task :restart do
on roles(:app), in: :sequence, wait: 20 do
sudo 'service eye_rails reload'
end
end
after :restart, :clear_cache do
on roles(:web), in: :groups, limit: 3, wait: 10 do
# do nothing
end
end
end
after 'deploy:publishing', 'deploy:restart'