Skip to main content
A playbook is one or more .ern files in the same directory. Errand reads all of them, merges their blocks, and runs the tasks you request.

Block types

A playbook is made up of four block types:

errand

Playbook-level settings.

variable

A named input with an optional type and default.

computed

A value derived from an expression at runtime.

task

A named group of shell commands.
Every block except errand takes a name label. Names must be unique within each block type:
variable "env" { ... }
computed "image_tag" { ... }
task "deploy" { ... }

Evaluation order

Errand processes the playbook in three phases:
  1. Variables are resolved from defaults and --var flags.
  2. Computed blocks evaluate in dependency order, before any task runs.
  3. Tasks run in the order their dependencies require, with optional concurrency.

References

Blocks refer to each other with dot notation. Referencing a block creates an implicit dependency: Errand ensures the referenced block runs first.
ReferenceRefers to
var.<name>A declared variable block
computed.<name>A declared computed block
task.<name>A declared task block
See references for the full dependency system, including cycle detection and explicit dependencies.