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

时间:2022-10-15 07:24:15

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。