DSL Overview (version = "0.5")
Use this page for DSL shape. Use DSL Reference Table for factual field constraints.
Core shape:
version = "0.5"
alias b = build
build [target] [mode="release"]: deps...
@in ...
@out ...
@env KEY=value
@secret_env TOKEN
@dir apps/api
@requires cargo
@mode graph
@isolation off
run command
Top-level variables
Before the first task header, you can declare workspace-level variables (static strings or $(command)
output) that any task can reference via {{ NAME }}:
version = "0.5"
GIT_SHA = $(git rev-parse --short HEAD)
release:
@out dist/release-{{ GIT_SHA }}.tar.gz
tar czf dist/release-{{ GIT_SHA }}.tar.gz dist/
See Annotations for the full syntax, evaluation timeout, and caching implications.
Execution inference rules
- task with declared
@outdefaults to graph behavior - task without
@outdefaults to interactive behavior - explicit
@modecan override inference
Minimal high-signal patterns
Graph task pattern
build:
@in src/**/* Cargo.toml
@out target/release
cargo build --release
Interactive task pattern
dev:
@mode interactive
npm run dev