我想知道如何使用Capistrano在Git中针对特定提交SHA进行部署?它应该像
cap deploy --version=<sha targeted>
经过大量搜索后似乎无法找到答案。
答案 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)
问:分支,'主人'
提示输入,但如果按返回则默认为“主”。