我正在从 Capistrano 2 升级到 Capistrano 3。在 Cap 2 中,我使用以下命令将命令行参数作为分支名称(否则默认为 master
)
set :branch, fetch(:branch, "master")
如果我调用 cap deploy
它将部署主分支。但它也让我可以做这样的事情:
cap deploy -S branch=foo
这将部署 foo
分支。
现在,在 Capistrano 3 中,如果我尝试运行上面的代码,我会得到一个错误:invalid option: -S
。
现在通过命令行传递参数的正确方法是什么?
最佳答案
我最后做的是设置一个 ENV
变量。
所以现在我可以打电话了
cap production deploy branch=mybranch
它会部署mybranch
。如果我运行一个简单的 cap production deploy
它将部署默认分支(master
如果你没有设置一个,但我已经将下面的我的更改为 default
来演示)
这是我放入deploy.rb
文件的代码:
set :branch, "default"
if ENV['branch']
set :branch, ENV['branch']
end
关于ruby-on-rails - Capistrano 3 提取命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21027452/