2018-10-24 16:00:07 +02:00
|
|
|
def domains_for_stage(stage)
|
|
|
|
case stage
|
2018-10-23 18:26:23 +02:00
|
|
|
when 'dev'
|
|
|
|
['web1.dev', 'web2.dev']
|
2018-10-24 10:24:28 +02:00
|
|
|
when 'prod'
|
2019-10-16 10:58:54 +02:00
|
|
|
['web1', 'web2', 'web3', 'web4']
|
2018-10-23 18:26:23 +02:00
|
|
|
else
|
2018-10-24 16:00:07 +02:00
|
|
|
raise "STAGE #{stage} is unknown. It must be either dev or prod."
|
2018-10-19 11:09:57 +02:00
|
|
|
end
|
2018-10-24 10:39:20 +02:00
|
|
|
end
|
2018-10-19 11:09:57 +02:00
|
|
|
|
2018-10-24 14:15:36 +02:00
|
|
|
task :setup do
|
2018-10-24 16:00:07 +02:00
|
|
|
domains = domains_for_stage(ENV.fetch('STAGE'))
|
2018-10-19 11:09:57 +02:00
|
|
|
|
2018-09-20 11:20:23 +02:00
|
|
|
domains.each do |domain|
|
2019-02-06 17:22:14 +01:00
|
|
|
sh "mina setup domain=#{domain}"
|
2018-09-03 18:36:09 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-10-24 14:15:36 +02:00
|
|
|
task :deploy do
|
2018-10-24 16:00:07 +02:00
|
|
|
domains = domains_for_stage(ENV.fetch('STAGE'))
|
2018-10-24 14:15:36 +02:00
|
|
|
branch = ENV.fetch('BRANCH')
|
2018-09-03 18:36:09 +02:00
|
|
|
|
|
|
|
domains.each do |domain|
|
2018-10-24 14:15:36 +02:00
|
|
|
sh "mina deploy domain=#{domain} branch=#{branch} force_asset_precompile=true"
|
2018-09-20 11:20:23 +02:00
|
|
|
end
|
|
|
|
end
|
2018-12-04 14:42:52 +01:00
|
|
|
|
|
|
|
task :post_deploy do
|
|
|
|
domains = domains_for_stage(ENV.fetch('STAGE'))
|
|
|
|
branch = ENV.fetch('BRANCH')
|
|
|
|
|
|
|
|
sh "mina post_deploy domain=#{domains.first} branch=#{branch}"
|
|
|
|
end
|
2020-05-14 16:11:00 +02:00
|
|
|
|
|
|
|
task :rollback do
|
|
|
|
domains = domains_for_stage(ENV.fetch('STAGE'))
|
|
|
|
branch = ENV.fetch('BRANCH')
|
|
|
|
|
|
|
|
domains.each do |domain|
|
2020-06-23 15:07:39 +02:00
|
|
|
sh "mina rollback service:restart_puma service:reload_nginx service:restart_delayed_job domain=#{domain} branch=#{branch}"
|
2020-05-14 16:11:00 +02:00
|
|
|
end
|
|
|
|
end
|