Как вызвать одну задачу Capistrano из другой? - PullRequest
42 голосов
/ 02 декабря 2010

Как вызвать одну задачу Capistrano из другой?

Например:

task :foo do
  # stuff
end

task :bar do
  # INVOKE :foo
end

Ответы [ 5 ]

95 голосов
/ 02 июля 2013

Для записи: в Capistrano 3 используйте invoke(), например,

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

Больше на https://github.com/capistrano/capistrano#before--after

33 голосов
/ 03 декабря 2010

Вы можете сделать это, используя пространство имен:

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

Просто будьте осторожны с именем, которое вы используете, чтобы не перезаписывать некоторые важные функции.

5 голосов
/ 02 декабря 2010

Обычно вы делаете это, определяя зависимости:

before :bar, :foo
2 голосов
/ 05 февраля 2014

вы также можете использовать Rake::Task["namespace:task"].invoke, это работает

1 голос
/ 08 сентября 2013

Если задача находится в другом пространстве имен, вместо нее можно использовать find_and_execute_task.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...