使用Capistrano我想在失败的部署上运行清理/拆卸任务,例如当shell命令失败时。
经过相当广泛的搜索,我找不到任何东西。
有人可以帮忙吗?感谢
答案 0 :(得分:1)
查看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