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

script/check, cibuild, docker, lint, test, setup and install-precommit
are now the sneak/prompts main copies, unchanged: lint and test each
build their Dockerfile phase with --no-cache. 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. script/bootstrap installs the C
compiler and image libraries only with --cgo, which the test phase and
build stage pass, and refreshes the apt lists before its first apt
install. Dockerfile.lint and CHECK_EPOCH are gone, and make
docker-versioned and docker-test call the scripts. Without VERSION the
build stage still uses git describe, per issue 166.

Model: opus-5-5
This commit was merged in pull request #218.
This commit is contained in:
2026-10-05 03:41:50 +02:00
rodzic 55cf7f4fac
commit a941a80bf9
13 zmienionych plików z 175 dodań i 156 usunięć
+9 -9
Wyświetl plik
@@ -4,7 +4,7 @@ VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev
LDFLAGS := -X main.Version=$(VERSION)
# Use nix-shell to provide CGO dependencies unless they are already available
# (e.g. inside a Docker build or an existing nix-shell).
# (e.g. inside an existing nix-shell).
HAS_PKGCONFIG := $(shell command -v pkg-config 2>/dev/null)
ifdef HAS_PKGCONFIG
NIX_RUN_PREFIX =
@@ -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
@@ -64,20 +64,20 @@ docker-smoke:
loadtest:
@script/loadtest
# 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