如何在失败的部署上运行Capistrano任务

时间:2012-11-05 08:58:38

标签: ruby capistrano

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

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

有人可以帮忙吗?感谢

1 个答案:

答案 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_symlinkdeploy的子任务,它创建了一个事务。

如果您想独立运行my_task(不是cap deploy进程的子任务)。您应该创建另一个任务,如下所示,并从命令行运行cap my_task_standalone

task :my_task_standalone do
  transaction do
    my_task
  end
end