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

时间:2016-08-01 13:40:00

标签: deployment branch capistrano

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

  • develop - >发展部门
  • 分期 - >临时服务器部署分支
  • master - >生产部门

我们的生产部署工作流程正在开发中 - >分期 - >主。我们总是首先部署到暂存,我们测试一段时间,然后我们部署到生产。

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

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

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

1 个答案:

答案 0 :(得分:6)

这是我如何做的。

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

set :branch, ENV.fetch("CAPISTRANO_BRANCH", "staging")

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

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

CAPISTRANO_BRANCH=my-feature cap staging deploy