使用capistrano部署一个特定的分支?

lcg*_*ida 3 deployment branch capistrano

我们有一个非常简单的分支策略:

  • 开发 - >开发分支
  • 登台 - >登台服务器部署分支
  • 大师 - >生产分公司

我们的生产部署工作流程是开发 - > staging - > master.我们总是首先部署到暂存,我们测试一段时间,然后我们部署到生产.

现在我们正在开发一个我想测试的新功能.我不想把它放在暂存中,因为,由于是实验性的,我不想在功能完成之前锁定生产部署.

有没有办法说capistrano我想要一个特定部署的分支,所以我可以把这个实验代码放在分期测试它?

OBS:我需要进行分段的原因是这段代码依赖于许多已在分段中配置的外部资源,并且难以在本地复制.

Mat*_*son 6

这是我如何做到的.

在我的config/deploy/staging.rb文件的顶部,我把它:

set :branch, ENV.fetch("CAPISTRANO_BRANCH", "staging")
Run Code Online (Sandbox Code Playgroud)

这告诉Capistrano,当我运行时cap staging deploy,staging默认情况下使用分支,但允许CAPISTRANO_BRANCH环境变量覆盖它.

所以现在如果我想将自定义分支部署到staging,它就像这样简单:

CAPISTRANO_BRANCH=my-feature cap staging deploy
Run Code Online (Sandbox Code Playgroud)