Capistrano 和同步静态文件到远程位置

Capistrano & syncing static files to remote location

作为 Capistrano 部署的一部分,我想将我的 CSS、JS 和图像同步到远程位置 (Amazon S3)。但是,我担心如果 Capistrano 部署失败,这将给我留下更新的 CSS、JS 和图像..但主要应用程序代码仍将在以前的版本中。

我想知道 Capistrano 是否有办法只在部署标记为完成并且 current 文件夹指向新部署的发布文件夹时才触发任务?这至少允许我在知道主源已更新后仅更新静态文件..

当然,我仍然会遇到这样的问题——如果与 S3 同步失败怎么办?但我认为这种方式在失败点方面会有更好的平衡。

Capistrano 有一堆你可以在部署期间使用的钩子。

http://capistranorb.com/documentation/getting-started/flow/

例如,您可能想为您的用例使用 'deploy:finished' 挂钩。

after 'deploy:finished', 'deploy:sync_assets_to_S3'

然后创建一个上限任务来执行您的文件上传。