使用 Capistrano 我想在部署失败时运行清理/拆卸任务,例如当 shell 命令失败时。
经过相当广泛的搜索后,我找不到任何东西。
任何人都可以帮忙吗?谢谢
使用 Capistrano 我想在部署失败时运行清理/拆卸任务,例如当 shell 命令失败时。
经过相当广泛的搜索后,我找不到任何东西。
任何人都可以帮忙吗?谢谢
看看 Capistrano 源代码:
这取决于你的任务如何。基本上,有一些用于回滚的片段:
task :my_task do
on_rollback { "rm -rf data_dir" }
exec "mkdir data_dir"
exec "some commands for preparaing data in data_dir"
end
after "deploy:create_symlink", :my_task
在上述情况下,my_task
应该在事务中运行。是的,它已经在事务中,因为它是创建事务deploy:create_symlink
的子任务。deploy
如果你想my_task
独立运行(不是cap deploy
进程的子任务)。您应该创建另一个如下所示的任务,并从命令行运行cap my_task_standalone
。
task :my_task_standalone do
transaction do
my_task
end
end