How do I invoke one Capistrano task from another?
如何从另一个调用Capistrano任务?
For example:
例如:
task :foo do
# stuff
end
task :bar do
# INVOKE :foo
end
5 个解决方案
#1
34
You can do it by using namespace:
可以使用名称空间:
namespace :test do
task :one do
end
task :two do
test.one
#or just directly call it:
one
end
end
Just be careful with the name you use to not overwrite some important function.
只需小心使用的名称,以免覆盖某些重要的函数。
#2
91
For the record: in the Capistrano 3, use invoke()
, e.g.
记录:在Capistrano 3中,使用invoke(),例如。
desc "Task that does something"
task :do_something do
invoke 'namespace:task'
end
More at https://github.com/capistrano/capistrano#before--after
之前,之后在https://github.com/capistrano/capistrano
#3
5
Generally you do this by defining dependencies:
通常你是通过定义依赖关系来做到这一点的:
before :bar, :foo
#4
2
you also could use Rake::Task["namespace:task"].invoke
, this works
您还可以使用Rake::Task[“namespace: Task”]。调用,这工作
#5
1
If the task lives in another namespace, you can use find_and_execute_task
instead.
如果任务位于另一个名称空间中,您可以使用find_and_execute_task。
#1
34
You can do it by using namespace:
可以使用名称空间:
namespace :test do
task :one do
end
task :two do
test.one
#or just directly call it:
one
end
end
Just be careful with the name you use to not overwrite some important function.
只需小心使用的名称,以免覆盖某些重要的函数。
#2
91
For the record: in the Capistrano 3, use invoke()
, e.g.
记录:在Capistrano 3中,使用invoke(),例如。
desc "Task that does something"
task :do_something do
invoke 'namespace:task'
end
More at https://github.com/capistrano/capistrano#before--after
之前,之后在https://github.com/capistrano/capistrano
#3
5
Generally you do this by defining dependencies:
通常你是通过定义依赖关系来做到这一点的:
before :bar, :foo
#4
2
you also could use Rake::Task["namespace:task"].invoke
, this works
您还可以使用Rake::Task[“namespace: Task”]。调用,这工作
#5
1
If the task lives in another namespace, you can use find_and_execute_task
instead.
如果任务位于另一个名称空间中,您可以使用find_and_execute_task。