我如何针对特定的提交SHA与capistrano部署
我想知道如何使用Capistrano在Git中针对特定的提交SHA进行部署? 应该是这样的
cap deploy --version=<sha targeted>
经过大量的search后,似乎无法find答案。
对于Capistrano 2.9至3.0:
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
对于老版本的Capistrano ,你可以通过这样来部署一个特定的git commit / tree / branch /标签:
cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
在某些情况下,也可能需要指定环境作为参数。 production
只是一个例子。
cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
molf的回答对我来说并不奏效(使用capistrano 2.11.2)。 我不得不使用“修改”而不是分支,如下所示:
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
卡皮斯特拉诺3
在你的deploy.rb
或stage-specific文件中,比如config/deploy/production.rb
set :branch, ENV.fetch('REVISION', 'master')
这允许你指向一个特定的git修订版本。 它接受一个SHA,但也可以parsing为一个真正的修订(例如git标签,注释标签或分支)。
通过设置REVISION
环境variables在命令行上使用它,例如
bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993 bundle exec cap staging deploy REVISION=my-topic-branch
问:分支,“主”
提示input,但如果您按回车则默认为“主”。