0

使用 Capistrano 我想在部署失败时运行清理/拆卸任务,例如当 shell 命令失败时。

经过相当广泛的搜索后,我找不到任何东西。

任何人都可以帮忙吗?谢谢

4

1 回答 1

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
于 2012-11-07T10:09:24.750 回答