← Back to docs
Recipe
Taskfile primer
Replace Make with a single portable YAML file that runs on Windows, macOS, and Linux — no runtime dependencies.
Why Taskfile
Task is a Go binary that reads a Taskfile.yml and executes shell commands. No Makefile quirks, no Python venv scaffolding, no Node toolchain required. One binary, one YAML file, cross-platform builds.
Install
go install github.com/go-task/task/v3/cmd/task@latestAlso available via winget, brew, scoop, and npm.
Minimal example
version: '3'
tasks:
build:
cmds:
- go build -o bin/meridian ./cmd/server
sources:
- '**/*.go'
generates:
- bin/meridian
test:
cmds:
- go test ./...
deps:
- buildKey concepts
- sources / generates — incremental builds. Task skips the task if generates are newer than sources.
- deps — run other tasks first. DAG-aware, runs each dependency once.
- vars — template variables with
{{.VAR}}Go template syntax. - env — per-task environment variables, inherited by all commands.
Meridian usage
Meridian ships a root Taskfile.yml with targets for build, test, lint, and release. Run task --list to see all available targets.
Next: Cross-compilation recipe — build Meridian for Windows, Linux, and macOS from a single machine.