chore(ci): build on go 1.26 so envtest tooling and dependabot bumps pass#17
Merged
Conversation
CI pinned setup-go to 1.24 while the toolchain around it moved on: - `go install setup-envtest@latest` floats and now resolves to a version requiring go >= 1.26. Under actions/setup-go v6 (GOTOOLCHAIN=local) this hard-fails the test job; it only survived on v5 via GOTOOLCHAIN=auto silently downloading a newer toolchain. - Dependabot go_modules bumps raise the go.mod `go` directive past 1.24, which made `go test -coverprofile` error with `go: no such tool covdata`. Bump the go.mod `go` directive to 1.26.0 (Dockerfile already builds on golang:1.26) and point ci.yml's lint/manifests/test jobs at `go-version-file: go.mod` so the installed toolchain always matches the module — same approach the e2e job already uses. Also pin `setup-envtest@release-0.21` (the controller-runtime release branch in go.mod) instead of @latest to stop future floating-version breakage. Unblocks the actions/setup-go v6 bump and the go_modules dependabot PRs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Tom Bar <martinloy.uy@gmail.com>
The golangci-lint-action downloads a prebuilt golangci-lint binary; the
v2.1.0 build ships compiled with an older Go and exits 3 ("can't parse
go.mod go directive") once go.mod declares go 1.26. (Locally `make lint`
hid this because go-install-tool recompiles golangci-lint with the host
toolchain.) Bump the pinned version in both ci.yml and the Makefile to
v2.12.2 and the action to v9. Runs clean (0 issues) on the codebase.
Subsumes the actions bump in dependabot #3.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Tom Bar <martinloy.uy@gmail.com>
Member
Author
|
Added a third commit: bump golangci-lint v2.1.0 → v2.12.2 and golangci-lint-action @v8 → @v9. The action downloads a prebuilt golangci-lint binary, and the v2.1.0 build (compiled with older Go) exits 3 on |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
CI pinned
setup-goto 1.24 while the toolchain around it moved on, breaking two classes of PRs:actions/setup-gov6 (build(deps): Bump actions/setup-go from 5 to 6 #1): v6 defaultsGOTOOLCHAIN=local.go install setup-envtest@latestfloats and now resolves to a version requiring go ≥ 1.26, so the install hard-fails on 1.24. It only survived on v5 becauseGOTOOLCHAIN=autosilently downloaded a newer toolchain.go_modulesbumps (build(deps): Bump k8s.io/client-go from 0.33.0 to 0.36.1 #7–build(deps): Bump github.com/onsi/ginkgo/v2 from 2.22.0 to 2.29.0 #11): each raises thego.modgodirective past 1.24, which madego test -coverprofileerror withgo: no such tool "covdata".What
go.mod:go 1.24.0→go 1.26.0(the Dockerfile already builds ongolang:1.26as of build(deps): Bump golang from 1.24 to 1.26 #6).ci.yml: lint / manifests / test jobs usego-version-file: go.mod(the toolchain always matches the module — same approach the e2e job already uses).setup-envtest@release-0.21(the controller-runtime release branch ingo.mod) instead of@latest, to stop future floating-version breakage.Verification
make test✓ at go 1.26 (36 specs),go build ./...✓,go mod verify✓,setup-envtest@release-0.21installs ✓, no manifest drift.Unblocks the
actions/setup-gov6 bump (#1) and thego_modulesdependabot group (#7–#11).🤖 Generated with Claude Code