Ruby on rails 如何使用capistrano deploy针对特定的提交SHA
我想知道如何使用Capistrano在Git中针对特定的commit SHA进行部署?应该是这样的Ruby on rails 如何使用capistrano deploy针对特定的提交SHA,ruby-on-rails,ruby,deployment,capistrano,Ruby On Rails,Ruby,Deployment,Capistrano,我想知道如何使用Capistrano在Git中针对特定的commit SHA进行部署?应该是这样的 cap deploy --version=<sha targeted> cap部署--version= 经过大量搜索后,似乎无法找到此问题的答案。对于Capistrano 2.9,直到3.0: cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 对于较旧版本的Capistrano,您可以通过以下操作部署特
cap deploy --version=<sha targeted>
cap部署--version=
经过大量搜索后,似乎无法找到此问题的答案。对于Capistrano 2.9,直到3.0:
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
对于较旧版本的Capistrano,您可以通过以下操作部署特定的git提交/树/分支/标记:
cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
在某些情况下,可能还需要将环境指定为参数<代码>生产只是一个例子
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
环境变量来使用它,例如
bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993
bundle exec cap staging deploy REVISION=my-topic-branch
问:分支机构,“主”
提示输入,但如果按return,则默认为“master”。这是特定提交的SHA吗?该分支将通过“git checkout”传递给git,因此提交id应与树id、分支名称等一样有效。此答案对我不适用,请参阅下面的@eahanson答案。对于Capistrano 3,请看这个问题:
set:branch,'SHA'
在Capistrano 2和3中统一工作,在2.14.2中工作100%良好,2.11.2高于2.9,您使用上述2.9中提到的语法。我遗漏了什么吗?@kik molf在我的评论后更改了答案有没有办法将分支作为命令行参数传递?我不知道怎么做。@Marcovtwow没有可能,请查看更新后的答案。