Skip to main content
Version: 7.x

Tasks

Define a task by using the task function. Also, you can give a description for a task with the desc function called before task:

desc('My task');
task('my_task', function () {
....
});

To get the task or override task config, call the task function without the second argument:

task('my_task')->disable();

Task config​

desc()​

Sets task's description.

task('deploy', function () {
// ...
})->desc('Task description');

Same as using desc() function helper:

desc('Task description');
task('deploy', function () {
// ...
});

once()​

Sets the task to run only on one of the selected hosts.

oncePerNode()​

Sets the task to run only on one node of the selected hosts.

The node is identified by its hostname. For instance, multiple hosts might deploy to a single physical machine (with a unique hostname).

host('foo')->setHostname('example.com');
host('bar')->setHostname('example.com');
host('pro')->setHostname('another.com');

task('apt:update', function () {
// This task will be executed twice, only on "foo" and "pro" hosts.
run('apt-get update');
})->oncePerNode();

hidden()​

Hides the task from CLI usage page.

addBefore()​

Adds a before hook to the task.

addAfter()​

Adds an after hook to the task.

limit()​

Limits the number of hosts the task will be executed on in parallel.

Default is unlimited (runs the task on all hosts in parallel).

select()​

Sets the task's host selector.

addSelector()​

Adds the task's selector.

verbose()​

Makes the task always verbose, as if the -v option is persistently enabled.

disable()​

Disables the task. the task will not be executed.

enable()​

Enables the task.

Task grouping​

You can combine tasks in groups:

task('deploy', [
'deploy:prepare',
'deploy:update_code',
'deploy:vendors',
'deploy:symlink',
'cleanup'
]);

Task hooks​

You can define tasks to be run before or after specific tasks.

task('deploy:done', function () {
writeln('Deploy done!');
});

after('deploy', 'deploy:done');

After the deploy task executed, deploy:done will be triggered.

note

You can see which hooks are enabled via the dep tree command.

dep tree deploy