如何在deploy.rb中将参数传递给Capistrano 3任务

mic*_*ilz 10 capistrano capistrano3

这是一个如何将参数传递给capistrano 3任务的教程.

namespace :task do
  desc 'Execute the specific cmd task'
  task :invoke, :command do |task, args|
    on roles(:app) do
      execute :cmd, args[:command]
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

可以执行:

$ cap staging "task:invoke[arg]"
Run Code Online (Sandbox Code Playgroud)

我如何在deploy.rb中使用它?以下不起作用.

before :started, "task:invoke[arg]"
Run Code Online (Sandbox Code Playgroud)

Iva*_*lin 4

不确定before/after,但Capistrano 3您始终可以使用该rake语法并从另一个任务中调用任务:

Rake::Task["mynamespace:mytask"].invoke(arg)
Run Code Online (Sandbox Code Playgroud)