我如何针对特定提交SHA与Capistrano的部署
-
06-09-2019 - |
题
我想知道我怎么能针对特定的提交SHA Git中进行部署,使用Capistrano的?这应该是这样的
cap deploy --version=<sha targeted>
似乎不是很多搜索后找到这个问题的答案。
解决方案
:用于Capistrano的2.9至3.0:强>
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
对于旧版本的Capistrano的的,你可以这样做部署特定的git的承诺/树/分支/标签:
cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
在某些情况下,有可能需要指定环境作为参数为好。 production
仅仅是一个例子。
cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
其他提示
MOLF的回答并没有为我工作(使用Capistrano的2.11.2)。我不得不使用“修订”,而不是分支,像这样的:
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
<强> Capistrano的3 强>
在您的deploy.rb
或阶段特异性的文件等config/deploy/production.rb
set :branch, ENV.fetch('REVISION', 'master')
这允许你指向一个特定的Git版本。它接受一个SHA而且任何解析为一个真正的修订(例如git的标签,注释标签,或分支)。
通过设置REVISION
环境变量,e.g用它在命令行上。
bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993
bundle exec cap staging deploy REVISION=my-topic-branch
问:分支, '主'
,提示输入而默认为“主”,如果你按下返回。
不隶属于 StackOverflow