如何使用capistrano deploy定位特定的提交SHA

时间:2009-05-27 21:06:55

标签: ruby-on-rails ruby deployment capistrano

我想知道如何使用Capistrano在Git中针对特定提交SHA进行部署?它应该像

cap deploy --version=<sha targeted>

经过大量搜索后似乎无法找到答案。

4 个答案:

答案 0 :(得分:63)

对于Capistrano 2.9直到3.0:

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

对于旧版本的Capistrano ,您可以通过以下方式部署特定的git commit / tree / branch / tag:

cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

在某些情况下,可能还需要将环境指定为参数。 production只是一个例子。

cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

答案 1 :(得分:17)

molf的回答对我不起作用(使用capistrano 2.11.2)。我不得不使用“修订版”而不是分支,如下所示:

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

答案 2 :(得分:12)

Capistrano 3

deploy.rb或特定于阶段的文件中,例如config/deploy/production.rb

set :branch, ENV.fetch('REVISION', 'master')

这允许您指向特定的git修订版。它接受SHA但也可以解析为真正的修订(例如git标记,带注释的标记或分支)。

通过设置REVISION环境变量(例如

)在命令行中使用它
bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993

bundle exec cap staging deploy REVISION=my-topic-branch

答案 3 :(得分:1)

  

问:分支,'主人'

提示输入,但如果按返回则默认为“主”。