sam roberts
sam roberts

Reputation: 217

Run one rake task after another completes

I'm trying to split down a rake task that i have,

What im wanting to do is after the rake task completes, It fires off another rake task.

Is this possible and if so how?

Upvotes: 11

Views: 4001

Answers (2)

Ivo Dimitrov
Ivo Dimitrov

Reputation: 123

Passing a task as an argument to enhance causes it to run BEFORE the task you are "enhancing".

Rake::Task["task_A"].enhance(["task_B"])
# Runs task_B
# Runs task_A

Passing a task to enhance in a block causes it to run AFTER the task you are "enhancing".

Rake::Task["task_A"].enhance do
  Rake::Task["task_B"].execute
end
# Runs task_A
# Runs task_B

Reference: Rake Task enhance Method Explained

Upvotes: 4

Roman Kiselenko
Roman Kiselenko

Reputation: 44370

You can use enhance to extend one task with other:

task :extra_behavior do
  # extra
end

Rake::Task["first:task"].enhance do
  Rake::Task[:extra_behavior].invoke
end

Upvotes: 12

Related Questions