Как вызвать одну задачу Capistrano у другого?
Как мне вызвать одну задачу Capistrano из другого?
Например:
task :foo do
# stuff
end
task :bar do
# INVOKE :foo
end
Ответы
Ответ 1
Вы можете сделать это, используя пространство имен:
namespace :test do
task :one do
end
task :two do
test.one
#or just directly call it:
one
end
end
Просто будьте осторожны с именем, которое вы используете, чтобы не перезаписывать важную функцию.
Ответ 2
Для записи: в Capistrano 3 используйте invoke()
, например.
desc "Task that does something"
task :do_something do
invoke 'namespace:task'
end
Подробнее в https://github.com/capistrano/capistrano#before--after
Ответ 3
Как правило, вы делаете это, определяя зависимости:
before :bar, :foo
Ответ 4
вы также можете использовать Rake::Task["namespace:task"].invoke
, это работает
Ответ 5
Если задача находится в другом пространстве имен, вы можете использовать find_and_execute_task
.