作为Capistrano部署的一部分,我想将我的CSS,JS和图像同步到远程位置(Amazon S3)。但是,我担心如果Capistrano部署失败,这将为我留下更新的CSS,JS和图像..但主要的应用程序代码仍将在之前的版本中。
我想知道如果部署标记为完成并且current
文件夹指向新部署的版本文件夹,Capistrano是否有办法只触发任务?这至少允许我只知道主源已更新后才更新静态文件..
当然,我仍然会遇到这样的问题 - 如果与S3的同步失败怎么办?但我认为这种方式在失败点方面会有更好的平衡。
答案 0 :(得分:1)
Capistrano有一堆你可以在部署期间使用的钩子。
http://capistranorb.com/documentation/getting-started/flow/
您可能希望使用' deploy:finished'例如,挂钩用于您的用例。
after 'deploy:finished', 'deploy:sync_assets_to_S3'
然后创建一个上限任务来执行文件上传。