Files
tapir/Taskfile.yml
T
mathias 3a1eb3d3da
CI / Lint / Test / Vet (push) Successful in 9s
CI / Build & Import (push) Failing after 0s
CI / Mirror to GitHub (push) Has been skipped
fix(test): serialize packages (-p 1) to stop embedded-postgres data-dir race
CI check failed in internal/adapters/store: parallel 'go test ./...' starts
multiple embedded-postgres instances against the shared ~/.embedded-postgres-go
data dir → 'another postgres running in data directory'. -p 1 runs one package
at a time, so only one embedded-postgres is live. (Locally flaky, deterministic
in CI's fresh env.)
2026-06-03 08:14:44 +02:00

59 lines
1.6 KiB
YAML

version: "3"
# Quality gate for Tapir. `task check` is THE gate referenced by ADR-009 and the
# CI workflow. Run it before every push (TBD: commit directly to main).
tasks:
default:
cmds:
- task: check
check:
desc: Full quality gate — fmt check, vet, lint, test.
cmds:
- task: fmt-check
- task: vet
- task: lint
- task: test
fmt:
desc: Format all Go code.
cmds:
- gofmt -w .
fmt-check:
desc: Fail if any file is not gofmt-clean.
cmds:
- "test -z \"$(gofmt -l .)\" || { echo 'gofmt: files need formatting:'; gofmt -l .; exit 1; }"
vet:
desc: go vet.
cmds:
- go vet ./...
lint:
desc: golangci-lint (installed by CI; skipped locally if absent).
cmds:
- 'command -v golangci-lint >/dev/null 2>&1 && golangci-lint run ./... || echo "golangci-lint not installed — skipping (CI installs it)"'
test:
desc: Run all tests. -p 1 serializes packages so the embedded-postgres tests
(store, web, oidc) don't race on the shared ~/.embedded-postgres-go data dir.
cmds:
- go test -p 1 ./...
generate:
desc: Regenerate Templ components (*_templ.go) from *.templ sources.
cmds:
- 'command -v templ >/dev/null 2>&1 && templ generate || go run github.com/a-h/templ/cmd/templ@latest generate'
build:
desc: Compile the binary.
cmds:
- go build -o bin/tapir ./cmd/tapir
skills:
desc: Wire the engineering skills library into this repo (symlinks, gitignored).
cmds:
- curl -fsSL https://gitea.d-ma.be/mathias/skills/raw/branch/main/install.sh | bash