アップデート。Capistrano 3 タスクのみにパラメーターを渡すことについて。
この質問はかなり古いことを知っていますが、Capistrano タスクにパラメーターを渡すことを検索すると、Google で最初にポップアップします。残念ながら、Jamie Sutherland によって提供されたすばらしい回答は、Capistrano 3 では有効ではなくなりました。結果が以下のようになることを除いて、時間を無駄にする前に試してください。
cap test:parameter -s branch=master
出力:
cap aborted!
OptionParser::AmbiguousOption: ambiguous option: -s
OptionParser::InvalidOption: invalid option: s
と
cap test:parameter -S branch=master
出力:
invalid option: -S
@senz と Brad Dwyer が提供する Capistrano 3 の有効な回答は、このゴールド リンクをクリックして見つけることができます:
Capistrano 3 pull command line arguments
完全を期すために、以下のコードを参照して、使用できる 2 つのオプションについて確認してください。
最初のオプション:
通常のハッシュと同じように、キーと値を使用してタスクを繰り返すことができます。
desc "This task accepts optional parameters"
task :task_with_params, :first_param, :second_param do |task_name, parameter|
run_locally do
puts "Task name: #{task_name}"
puts "First parameter: #{parameter[:first_param]}"
puts "Second parameter: #{parameter[:second_param]}"
end
end
cap を呼び出すときは、パラメータ間にスペースがないことを確認してください。
cap production task_with_params[one,two]
2番目のオプション:
任意のタスクを呼び出すときに、環境変数を割り当てて、コードから呼び出すことができます。
set :first_param, ENV['first_env'] || 'first default'
set :second_param, ENV['second_env'] || 'second default'
desc "This task accepts optional parameters"
task :task_with_env_params do
run_locally do
puts "First parameter: #{fetch(:first_param)}"
puts "Second parameter: #{fetch(:second_param)}"
end
end
環境変数を割り当てるには、次のように cap を呼び出します。
cap production task_with_env_params first_env=one second_env=two
時間を節約できることを願っています。