0
使用Capistrano我想在失敗的部署上運行清理/拆卸任務,例如當shell命令失敗時。如何在失敗的部署上運行Capistrano任務
經過相當廣泛的搜索後,我找不到任何東西。
任何人都可以幫忙嗎?由於
使用Capistrano我想在失敗的部署上運行清理/拆卸任務,例如當shell命令失敗時。如何在失敗的部署上運行Capistrano任務
經過相當廣泛的搜索後,我找不到任何東西。
任何人都可以幫忙嗎?由於
就以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
'cap -T'顯示所有命令及其描述。 –
@JacobDam,是的,但是這對我的問題有什麼幫助?我需要這樣的代碼在deploy.rb中:在「failed_deploy」之後,:my_cleanup_task – Zac
對不起,我誤解了你的問題。我以爲你問清哪個任務來清理失敗的部署。所以,你的問題是:如何觸發一個失敗的部署,並以編程方式運行自定義清理任務? –