如何从另一个调用一个Capistrano任务?

时间:2010-12-02 18:59:41

标签: ruby-on-rails capistrano

如何从另一个人那里调用一个Capistrano任务?

例如:

task :foo do
  # stuff
end

task :bar do
  # INVOKE :foo
end

5 个答案:

答案 0 :(得分:95)

对于记录:在Capistrano 3中,使用invoke(),例如

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

更多https://github.com/capistrano/capistrano#before--after

答案 1 :(得分:33)

您可以使用命名空间:

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

请注意您使用的名称不要覆盖某些重要功能。

答案 2 :(得分:5)

通常,您可以通过定义依赖项来执行此操作:

before :bar, :foo

答案 3 :(得分:2)

你也可以使用Rake::Task["namespace:task"].invoke,这可行

答案 4 :(得分:1)

如果任务位于另一个命名空间中,则可以改为使用find_and_execute_task