Fail a bare docker build instead of serving cached gates (closes #39)
check / check (push) Failing after 3s

Each Dockerfile stage that runs gates now checks, right after its
ARG CHECK_EPOCH, that the value is not empty, and stops with a message
naming script/cibuild and script/docker. A plain `docker build .` can
no longer report a green from cached gate layers.

script/cibuild and script/docker now append the process id to the
epoch, the form script/lint already uses, so two runs started in the
same second still get different values.

README says both. TODO.md corrects the steady-state CACHED count
recorded for issue 32 from twelve to thirteen.

Model: opus-5-5
This commit was merged in pull request #93.
This commit is contained in:
2026-10-04 19:30:20 +02:00
parent 313aa0fc12
commit bebfac1dcb
5 changed files with 51 additions and 25 deletions
+5 -2
View File
@@ -21,14 +21,17 @@
# serves the gate layers from cache and the build reports a green it
# never earned. Passing the current epoch invalidates the gate
# layers on every run while leaving the pinned base images and
# go mod download cached; see the Dockerfile for the placement.
# go mod download cached; see the Dockerfile for the placement. The
# process id goes in with the epoch so that two runs started in the
# same second still get different values, the same form script/lint
# uses.
set -eu
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
main() {
cd "$ROOT"
docker build --build-arg CHECK_EPOCH="$(date +%s)" .
docker build --build-arg CHECK_EPOCH="$(date +%s)-$$" .
}
main "$@"