我正在使用Capistrano 3。如何在不编写自己的任务的情况下删除deploy:failed上的失败版本?重点是失败的发行版停留在release目录中,我可以通过输入cap deploy:rollback意外地回滚到损坏的发行版。
UPD:目前我正在使用这个任务,但仍然在寻找更好的解决方案。
namespace :deploy do
desc 'Delete failed release'
task :rm_failed do
on roles(:all) do
execute(:rm, "-rf #{release_path}")
end
end
end
after 'deploy:failed', 'deploy:rm_failed'
发布于 2018-06-01 00:39:28
我使用Capistrano的有限经验表明,没有内置的机制来执行您想要的操作。编写一个使用deploy:failed触发的任务是处理这种情况的正确方法,因为它可以是特定于应用程序的。
一个更好的解决方案,它解决了deploy:clean在deploy:symlink:release --
namespace :deploy do
desc 'Delete failed release'
task :rm_failed do
on roles(:web) do
if test "[ -d #{current_path} ]"
current_release = capture(:readlink, current_path).to_s
if current_release != release_path.to_s
execute :rm, "-rf #{release_path}"
end
end
end
end
end
after 'deploy:failed', 'deploy:rm_failed'
Capistrano page on rollbacks在处理回滚和故障方面有更大的讨论。
https://stackoverflow.com/questions/40411477
复制相似问题