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