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