Make run resilient to same version having already been run

This commit is contained in:
David Heinemeier Hansson
2023-01-08 15:13:03 +01:00
parent e1724e0cd9
commit 8d16271150

View File

@@ -17,9 +17,20 @@ namespace :mrsk do
on(MRSK_CONFIG.servers) { execute app.pull }
end
desc "Run app on servers"
desc "Run app on servers (or start them if they've already been run)"
task :run do
on(MRSK_CONFIG.servers) { execute app.run }
on(MRSK_CONFIG.servers) do |host|
begin
execute app.run
rescue SSHKit::Command::Failed => e
if e.message =~ /already in use/
puts "Container with same version already deployed on #{host}, starting that instead"
execute app.start, host: host
else
raise
end
end
end
end
desc "Start existing app on servers"