同时部署多个应用程序

Deploying multiple app together

我有两个配置为使用 capistrano 部署的应用程序,它们都可以单独部署,但我想发布两个应用程序需要一起部署的版本。

是否有部署多个 Capistrano 一起部署和 select 个分支的解决方案?

我试过 caphub,但它对我不起作用,我明白了:

cap aborted!
NoMethodError: undefined method `gsub' for #<Proc:0x007f870bf5a8e0>

我可以有一个 bash 脚本来部署所有,但是有更好的东西吗?

尝试查看 Git Submodules

基本上你选择 1 个主 repo,其余的作为子模块,这样 Capistrano 只从一个 git repo = atomic deploy.

它不会真正合并回购协议,每个回购协议都会像以前一样有自己的提交历史。
子模块的代码将出现在主模块的根文件夹下。

因此,如果您的所有应用程序都在同一台服务器上,这可能是一个很好的解决方案。

如果您想在项目中保留 Capistrano 的配置但仍然能够并行部署它们,那么有更好的方法。

即使这两个项目使用不同版本的 Capistrano(2.x 和 3.x),这仍然有效

您只需执行四个简单的步骤:

1) 运行 此命令来自终端 î 在任何目录中。但请确保您有 ruby >= 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) 运行 并行部署,如自述文件中所示。

这 gem 允许您同时将应用程序部署到多个阶段。

并且您可以在运行时指定不同的分支。

但在你做这一切之前。您需要确保每个任务不会使用其他任务也可能使用的资源(文件),否则您会发现自己陷入僵局。

尽情享受吧:)