Skip to content

🔧 chore(security): pin Go toolchain to 1.26.4 as CI's single source of truth#22

Merged
scttbnsn merged 1 commit into
mainfrom
quality/pin-go-toolchain
Jun 16, 2026
Merged

🔧 chore(security): pin Go toolchain to 1.26.4 as CI's single source of truth#22
scttbnsn merged 1 commit into
mainfrom
quality/pin-go-toolchain

Conversation

@scttbnsn

Copy link
Copy Markdown
Contributor

Follow-up to the Grype/govulncheck consolidation.

go.mod declared only go 1.26.0 with no toolchain directive, so builds and scans floated to whatever 1.26.x a runner installed — and a build on a clean 1.26.0 machine would ship the reachable crypto/x509 + net/url advisories (GO-2026-4599/4600/4601, fixed in 1.26.1). That's also exactly why the first go-version-file attempt failed earlier.

  • go.mod: add toolchain go1.26.4 — a floor enforced everywhere via GOTOOLCHAIN=auto.
  • All 9 workflows: setup-go go-version: "1.26"go-version-file: go.mod (14 steps). setup-go honors the toolchain directive over the go line, so the pin now governs build, govulncheck, Grype, and release in lockstep — bump it in one place.
  • CHANGELOG: documents the pin + one-source-of-truth switch.

Verified locally: go build ./... and govulncheck ./... clean on 1.26.4; actionlint + zizmor clean across all workflows.

…f truth

go.mod declared only `go 1.26.0` (no toolchain directive), so builds and scans
floated to whatever 1.26.x a runner installed, and a clean-machine build on
1.26.0 would ship reachable crypto/x509 + net/url CVEs (GO-2026-4599/4600/4601,
fixed in 1.26.1).

- 🔧 go.mod: add `toolchain go1.26.4` — a floor for every build via GOTOOLCHAIN=auto.
- 🔄 all 9 workflows: setup-go `go-version: "1.26"` -> `go-version-file: go.mod`
  (14 steps), so the pinned toolchain governs build, govulncheck, Grype, and
  release in lockstep. setup-go honors the toolchain directive over the go line.
- 📝 CHANGELOG: document the pin and the one-source-of-truth switch.

Verified: go build ./... and govulncheck ./... clean on 1.26.4; actionlint +
zizmor clean across all workflows.

@biggest-littlest biggest-littlest left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — toolchain pinned to 1.26.4, go-version-file everywhere. govulncheck clean on 1.26.4.

@ALARGECOMPANY ALARGECOMPANY left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. One source of truth for the Go version is the right call.

@scttbnsn scttbnsn merged commit e96ebbd into main Jun 16, 2026
22 of 23 checks passed
@scttbnsn scttbnsn deleted the quality/pin-go-toolchain branch June 16, 2026 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants