xtask 0.4.0
xtask: ^0.4.0 copied to clipboard
A task runner whose tasks are data. The graph lives in xtask.yaml; a job body is either an external process (argv, never a shell) or a verb the project implements in Dart.
A project using xtask #
Two files, and one of them is optional until a task needs Dart.
xtask.yaml is the whole task graph — three tasks, one gate set, one set of
paths. xtask check runs its members in the order they are written; the CI job
runs the same command and names nothing else.
bin/xtask.dart exists only because one task has a do:. A verb is a
function this project wrote, so no engine installed from pub.dev can contain
it: the project hands it over, and that is the whole of the entry point.
dart run :xtask --list # every task, with its description
dart run :xtask --dry-run check # what would run, resolved on this machine
dart run :xtask check # run it
dart run :xtask rather than the installed xtask, because only it reaches
bin/xtask.dart.
The rest — the keys, the exit codes, what -j costs — is in the
package README.