๐ gogo
A simple task runner. Define tasks in YAML, run them from anywhere.
Simple YAML Config
Define tasks with commands, dependencies, variables, and environment in a single gogo.yaml file.
Watch Mode
Watch source files and automatically re-run tasks when they change.
Incremental Builds
Source checksums skip tasks that are already up to date.
Dependencies
Tasks can depend on other tasks, with concurrent execution of independent dependencies.
Secrets
Inject secrets from 1Password into tasks using op:// references.
Includes
Split large task files into namespaced modules across subdirectories.
Quick Example
# gogo.yaml
tasks:
# Build the project
build:
cmd: go build ./...
# Run all tests
test:
deps: [build]
cmd: go test ./...
sources:
- "*.go"
- "cmd/*.go"
# Format and lint
lint:
cmds:
- gofmt -w .
- golangci-lint run
gogo build # run the build task
gogo test # run tests (builds first)
gogo -w test # watch and re-run tests on changes
gogo -l # list tasks with descriptions