mirror of
https://github.com/hanzoai/ci.git
synced 2026-10-20 15:28:05 +00:00
The official golang images set GOTOOLCHAIN=local, so a go.mod requiring a newer Go than the base image does not degrade to a download — it dies mid-build: go: go.mod requires go >= 1.26.5 (running go 1.26.4; GOTOOLCHAIN=local) visor v1.108.16 shipped that failure. The reason it reached a release build is that nothing local can see it: a dev box runs GOTOOLCHAIN=auto and simply fetches what the module asks for, so `go build` is green right up until the image build. The break is introduced by editing go.mod, a file with nothing to do with Docker. It is not one repo's problem. Sweeping every Dockerfile across the orgs — all variants, all subdirectories, not just repo roots — found 54 builder stages already below their own go.mod in 23 repos, and only 7 of 223 Go stages setting GOTOOLCHAIN=auto. Fixing those 54 fixes today; this makes the 55th impossible, which is the part worth having. bin/gover is that check, run by the build lane before any build work so a mismatch costs seconds instead of a binfmt install and a layer cache. It refuses only what cannot build: an image BELOW the module floor. Pinning ahead of go.mod is valid and stays silent, because a newer toolchain compiling an older directive always works. A floating tag against a patch-pinned go.mod warns and passes — it builds today, and a gate that fails what builds is a gate people learn to skip. The error names the remediation rather than just saying no: pin the base to the version go.mod asks for, and add ENV GOTOOLCHAIN=auto so the next bump downloads its toolchain instead of failing. This repo's own module and image move to go1.26.5 and adopt that same GOTOOLCHAIN=auto line, so the pipeline holds itself to the rule it enforces. bin/gover_test.sh pins both directions — the refusals and the allowances (newer-than-floor, alpine suffix vs Go patch, ARG defaults, and a multi-module repo judged by its nearest go.mod). Offline, no registry. Co-authored-by: Hanzo Dev <[email protected]>
4 lines
40 B
AMPL
4 lines
40 B
AMPL
module github.com/hanzoai/ci
|
|
|
|
go 1.26.5
|