web-dev-qa-db-ja.com

Capistranoタスクを別のタスクから呼び出すにはどうすればよいですか?

Capistranoタスクを別のタスクから呼び出すにはどうすればよいですか?

例えば:

task :foo do
  # stuff
end

task :bar do
  # INVOKE :foo
end
43
weicool

名前空間を使用してそれを行うことができます:

namespace :test do
  task :one do
  end
  task :two do
    test.one
    #or just directly call it:
    one
  end
end

重要な機能を上書きしないように、使用する名前に注意してください。

35
mpapis

記録について:Capistrano 3では、invoke()を使用します。

desc "Task that does something"
task :do_something do
  invoke 'namespace:task'
end

詳細 https://github.com/capistrano/capistrano#before--after

98
Ain Tohvri

一般的には、依存関係を定義することでこれを行います。

before :bar, :foo
5
tadman

Rake::Task["namespace:task"].invokeを使用することもできます。これは機能します

2
andi

タスクが別の名前空間にある場合は、代わりにfind_and_execute_taskを使用できます。

1
troelskn