chore: let Renovate track Go minor version in setup-go workflows - #5981
Merged
Conversation
Add a customManager that watches `go-version: 1.X.x` (and the bracketed matrix form `[1.X.x]`) in `.github/workflows/*.yml` and bumps the major.minor portion whenever a new Go minor release ships. The `.x` suffix is preserved so workflows keep tracking the latest patch. Covers: lint, tc39, wpt, xk6, test, test-browser. Excludes: browser_e2e.yml (floating `1.x`) and build.yml (dynamic input).
mstoykov
requested review from
inancgumus and
szkiba
and removed request for
a team
May 13, 2026 13:02
szkiba
previously approved these changes
May 13, 2026
mstoykov
temporarily deployed
to
azure-trusted-signing
May 13, 2026 13:08 — with
GitHub Actions
Inactive
mstoykov
temporarily deployed
to
azure-trusted-signing
May 13, 2026 13:10 — with
GitHub Actions
Inactive
inancgumus
reviewed
May 13, 2026
Co-authored-by: Inanc Gumus <inanc.gumus@grafana.com>
mstoykov
temporarily deployed
to
azure-trusted-signing
May 14, 2026 07:48 — with
GitHub Actions
Inactive
mstoykov
temporarily deployed
to
azure-trusted-signing
May 14, 2026 07:50 — with
GitHub Actions
Inactive
szkiba
approved these changes
May 15, 2026
inancgumus
approved these changes
May 18, 2026
1 task
8 tasks
mstoykov
added a commit
that referenced
this pull request
Jul 2, 2026
The Go versions used across the CI workflows were hardcoded in each file. With the Renovate manager added in #5981, the deliberate N-1 matrix entry in test.yml/test-browser.yml looked identical to the current-version entry, so Renovate tried to bump it to latest (#6085), collapsing the current + previous coverage into testing one version twice. Introduce .github/go-versions.env as the single source of truth for GO_VERSION_CURRENT and GO_VERSION_PREV, read via a new .github/actions/go-versions composite action. Non-matrix workflows (lint, tc39, wpt, xk6) and the lint action resolve the version in a step; the matrix workflows (test, test-browser) gain a small configure job that feeds the versions into their matrices. Both versions are now bumped manually with each Go release, so the Renovate custom manager for Go is removed. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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.
Summary
Adds a Renovate
customManagerso the Go version pinned in our GitHub Actions workflows gets bumped automatically when a new Go minor release ships, instead of needing manual PRs.The regex matches two forms used across the workflows:
go-version: 1.26.xgo-version: [1.26.x]Only the
major.minorportion is replaced — the.xsuffix stays, so workflows still pick up the latest patch automatically.Files covered
lint.yml,tc39.yml,wpt.yml,xk6.ymltest.yml,test-browser.yml(both[1.25.x]and[1.26.x]matrix entries)Intentionally excluded
browser_e2e.yml— uses1.x(floating major, doesn't need bumping)build.yml— Go version comes from a workflow input, not a literalNotes
[1.25.x]matrix entries intest.yml/test-browser.ymllook like deliberate N-1 lagging. With this manager, Renovate will propose bumping them too — if we want them pegged behind, a follow-uppackageRulewithmatchFileNames+allowedVersionscan constrain them.github-releaseslookups (already the case in CI).Test plan
renovate-config-validatorpasses on the new configrenovate --dry-run=lookupextractsdepName: golang/gofor each matched file; with one file temporarily downgraded to1.20.x, Renovate flags it as a separate update candidate from the others on1.26.x