Task YAML task runner
Light · Postcard
102 × 152 mm · PDF
Dark · Postcard
102 × 152 mm · PDF
Ink saver · Postcard
102 × 152 mm · PDF
Light · A4 landscape
297 × 210 mm · PDF
Dark · A4 landscape
297 × 210 mm · PDF
Ink saver · A4 landscape
297 × 210 mm · PDF
Light · A3 landscape
420 × 297 mm · PDF
Dark · A3 landscape
420 × 297 mm · PDF
Ink saver · A3 landscape
420 × 297 mm · PDF
Start here
task --inittask --listtask <name>
task <a> <b>
task --dry <name>
task <name> -- <args>
task <name> <VAR>=<value>
task --watch <name>
Concepts
- task <name> CLI call
- Dependencies run first, in parallel
- Check sources / status
- Commands run in order
Running
task --listtask --list-alltask <name>
task --dry <name>
task --force <name>
task --parallel <a> <b>
task --summary <name>
task --status <name>
task --watch <name>
task --yes <name>
task --taskfile <file>
task --dir <path>
task --global <name>
task --output group <name>
task --silent <name>
task --verbose <name>
task --concurrency <n>
task --failfasttask --list --json
task --initTask basics
version: '3'
tasks: <name>: cmds:
cmd: <command>
desc: <text>
summary: <text>
aliases: [<alt>]
dir: <path>
silent: trueinternal: true- task: <other>
ignore_error: true
timeout: 5mrun: oncedefault:Dependencies and loops
deps: [<a>, <b>]
deps: - task: <t> vars: {...}
for: [<a>, <b>] cmd: ... {{.ITEM}}
for: {var: <V>}
for: {matrix: {...}}
defer: <command>
if: <shell test>
platforms: [linux, darwin]
Variables
vars: <NAME>: <value>
{{.NAME}}<NAME>: {sh: <command>}
{{.NAME | default "x"}}
{{.CLI_ARGS}}{{.TASK}}env: <NAME>: <value>
dotenv: ['.env']
requires: vars: [<NAME>]
requires: vars: - {name, enum: [...]}
task <name> --interactive
Up-to-date and checks
sources: ['**/*.go']
generates: [<file>]
- exclude: '<glob>'
method: checksum
method: timestamp
method: nonestatus: [<test cmd>]
preconditions: - sh: <test> msg: <text>
prompt: <question>
watch: trueinterval: 1sIncludes and layout
includes: <ns>: <path>
taskfile: <path>
dir: <path> (include)
optional: trueflatten: trueexcludes: [<task>]
vars: (in include)
task <ns>:<task>
set: [pipefail]output: groupRecipes
tasks: build: desc: Build the binary sources: ['**/*.go', go.mod] generates: [bin/app] cmds: - go build -o bin/app .
tasks: default: cmds: - task --list silent: true
tasks: deploy: requires: vars: - name: ENV enum: [staging, production] prompt: Deploy to {{.ENV}}? deps: [build] cmds: - ./deploy.sh {{.ENV}}
tasks: test-all: cmds: - for: [api, web] cmd: cd {{.ITEM}} && npm test



