我有两个配置为使用capistrano部署的应用程序,它们都可以单独部署,但我想发布两个应用程序需要一起部署的版本。
如果有解决方案可以将多个capistrano部署在一起并选择分支?
我尝试过caphub,但它不适合我,我明白了:
cap aborted!
NoMethodError: undefined method `gsub' for #<Proc:0x007f870bf5a8e0>
我可以使用bash脚本来部署所有内容,但还有更好的东西吗?
答案 0 :(得分:0)
尝试查看Git Submodules。
基本上你选择1个主要仓库并将其余部分作为子模块,这样Capistrano只能从一个git repo = atomic deploy中获取。
它实际上并没有合并回购,每个回购都有自己的提交历史记录 子模块&#39;代码将显示在主模块的根文件夹下。
因此,如果您的所有应用都在同一台服务器上,这可能是一个很好的解决方案。
答案 1 :(得分:0)
如果你想在你的项目中保留Capistrano的配置但是仍然可以部署它们,那么有更好的方法înparalell。
即使两个项目使用不同版本的Capistrano(2.x和3.x)
,这也有效您只需要执行四个简单的步骤:
1)从终端în任何目录运行此命令。但要确保你有ruby&gt; = 2.2。
gem install capistrano_multiconfig_parallel -v 2.4.O
2)在您的主目录(/ home / username)中创建名为'multi_cap.yml'的YAML文件
3)阅读本自述文件https://github.com/bogdanRada/capistrano_multiconfig_parallel并将所有配置文件放入其中。文件。
4)在自述文件中显示部署înpallel。
此gem允许您同时将应用程序部署到多个阶段。
您可以在运行时指定不同的分支。
但在你做这一切之前。您需要确保每个任务都不会使用其他任务可能使用的资源(文件),否则您将发现自己陷入僵局。
享受:)