Simple task runner with support 6C52 for arbitrary grouping, nesting, and parallel execution.
The tool is designed to be run with Babashka. Visit https://github.com/babashka/babashka#installation for installation instructions.
You could, in theory, leverage any Clojure runtime of choice - so long as you're able to satisfy the dependencies. The only package outside of the standard library is babashka/process.
Assuming Babashka is installed and available globally, simply navigate to the runner's directory and run:
bb runner.bbThis will prompt a help doc explaining the syntax.
Before you can actually run any tasks, you must first define them. To that end, either put them in runner.edn inside the runner's directory (runner.windows.edn under Windows), or provide them directly using the --edn option. Tasks are encoded in extensible data notation. See runner.example.edn to learn how to define them, and how they map to command line directives.
Assuming the following set of tasks:
{:dev {:clean "some task"
:build "some other task"}
:run-tests "another task"}You could run a single task like so:
runner.bb dev:clean
An entire category, like so:
runner.bb dev
Or even combine the two:
runner.bb dev run-tests
Happy tasking!