我正在使用 capistrano 部署 RoR 应用程序。代码库位于 git 存储库中,分支在开发中被广泛使用。Capistrano 使用 deploy.rb
文件进行设置,其中一个是要部署的分支。
我的问题是: 假设我从 师父创建了一个新的分支 A。部署文件将引用 师父分支。我编辑它,这样就可以将 A部署到测试环境中。我完成了该特性的工作,并将分支 A合并到 师父中。因为来自 A的 deploy.rb
文件比较新鲜,所以它被合并进来,现在 师父分支中的 deploy.rb
引用 A。是时候再次编辑了。
这是很多看似不必要的手动编辑-参数应该始终匹配当前分支名称。除此之外,每次都很容易忘记编辑设置。
自动化这个过程的最佳方式是什么?
编辑: 原来 有人已经完成了我想要的:
今天早上,我有机会部署一个 git 存储库的分支 一个登台服务器,但不知道如何。快速搜索 通过 Capistrano 的源代码显示,我可以使用 set 在我的部署脚本中使用
:branch "branch_name"
。我试过了,它起作用了。 然后我想我需要在我所有的 当然,我是一个懒惰的讨厌鬼,我想知道是否有一个 更好的方式。如果您不熟悉 git,那么可以使用 git 分支命令的输出 是一个分行列表,用星号标记当前的分行 在本地机器上检出。例如:
> git branch * drupal_authentication fragment_caching master
所以,我想,如果我只解析输出并搜索 标记为当前的分行:
set :branch, $1 if `git branch` =~ /\* (\S+)\s/m
现在我可以部署本地机器上当前的任何分支 从一个共享的部署脚本。