Run lint and tests as Dockerfile phases built with --no-cache (closes #202)
check / check (push) Failing after 2s

script/check, cibuild, docker, lint, test, setup and install-precommit
are now the copies from sneak/prompts main, unchanged: lint and test
each build their Dockerfile phase with --no-cache, and cibuild runs
bootstrap and check before building the image. The lint phase runs
golangci-lint from the image REPO_POLICIES.md names, with libvips-dev
from apt-get; the test phase runs the tests with a 90-second timeout;
the build stage depends on both. Dockerfile.lint and CHECK_EPOCH are
gone, the formatting check stays on the host, and make docker-versioned
and docker-test call the scripts. Without VERSION the stage that
compiles still takes the version from git describe, per issue 166.

Model: opus-5-5
This commit is contained in:
2026-10-04 23:57:41 +00:00
parent ae7c3f226d
commit 468439a229
13 changed files with 141 additions and 148 deletions
+8 -8
View File
@@ -32,11 +32,11 @@ fmt-check:
fmt:
@script/fmt
# Run linter
# Run linter (the lint phase of the Dockerfile)
lint:
@script/lint
# Run tests (30-second timeout)
# Run tests (the test phase of the Dockerfile)
test:
@script/test
@@ -59,20 +59,20 @@ docker:
docker-smoke:
@script/docker-smoke
# Build Docker image tagged pixad:$(VERSION) and pixad:latest
# Build Docker image as `make docker` does, and also tag it pixa:$(VERSION)
docker-versioned:
docker build --build-arg VERSION=$(VERSION) -t pixad:$(VERSION) -t pixad:latest .
@script/docker
docker tag pixa pixa:$(VERSION)
# Run tests in Docker (needed for CGO/libvips)
# Run tests in Docker, as `make test` does
docker-test:
docker build --target builder --build-arg VERSION=$(VERSION) -t pixad-builder .
docker run --rm pixad-builder sh -c "CGO_ENABLED=1 GOTOOLCHAIN=auto go test -v ./..."
@script/test
# Run local dev server in Docker
devserver: docker-versioned devserver-stop
docker run -d --name pixad-dev -p 8080:8080 \
-v $(CURDIR)/config.dev.yml:/etc/pixa/config.yml:ro \
pixad:latest
pixa:latest
@echo "pixad running at http://localhost:8080"
# Stop dev server