ruby-on-rails - Capistrano 3 提取命令行参数

标签 ruby-on-rails git rake capistrano

我正在从 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/

相关文章:

ruby-on-rails - 首字母缩略词不会正确复数导致循环依赖

c# - 将 git 上的所有提交返回到尚未 merge 的主分支的最简单方法是什么?

ruby-on-rails - Rake RSpec 任务未显示

ruby-on-rails - 奇怪的 "profiling"输出。从 Rails 命令行

ruby-on-rails - 使用 "rake test"幸存段错误

ruby-on-rails - Passenger 和 rbenv 问题 - 库版本不兼容

javascript - HTML div 标签中的循环表达式与 Javascript 一起使用

ruby-on-rails - 如何在给定值内按关联模型排序?

git 给出关于在 cmd 中运行的 vim 的错误

git 和 "Server aborted the SSL handshake"错误