Files
fejkdata/compose.yaml
T
lilleman d44c941a92
Tests / vet + fmt + tests (pull_request) Successful in 27s
Tests / vet + fmt + tests (push) Successful in 6s
Make the CI gate work on Gitea by building instead of bind-mounting
2026-09-01 20:33:04 +02:00

64 lines
1.3 KiB
YAML

# Docker-based dev workflow — no local tooling beyond Docker is required.
#
# docker compose run --rm test
# docker compose run --rm vet
# docker compose run --rm build
#
# The full gate — vet, formatting and tests — is `docker build .`, which is what
# CI runs.
#
# Build caches persist in the `gocache` volume, so re-runs are fast and the
# host tree stays clean. Commands that rewrite source (fmt, tidy) keep your
# ownership when run with `--user "$(id -u):$(id -g)"`.
#
# GO_VERSION picks the toolchain image (default: latest stable). Test the lowest
# supported Go with: GO_VERSION=1.22 docker compose run --rm test
x-go: &go
image: golang:${GO_VERSION:-1.26.4}
working_dir: /app
volumes:
- .:/app
- gocache:/cache
environment:
HOME: /cache
GOCACHE: /cache/build
GOMODCACHE: /cache/mod
services:
test:
<<: *go
command: go test ./...
cover:
<<: *go
command: go test -cover ./...
bench:
<<: *go
command: go test -run XXX -bench . -benchmem ./...
vet:
<<: *go
command: go vet ./...
build:
<<: *go
command: go build ./...
fmt:
<<: *go
command: gofmt -w .
tidy:
<<: *go
command: go mod tidy
# Interactive shell for ad-hoc work: docker compose run --rm dev
dev:
<<: *go
command: sh
volumes:
gocache: