Skip to content

fix(ci): install Go 1.25 before monorel for release-pr / release#77

Merged
theogravity merged 1 commit into
mainfrom
fix/release-pr-go-toolchain
May 3, 2026
Merged

fix(ci): install Go 1.25 before monorel for release-pr / release#77
theogravity merged 1 commit into
mainfrom
fix/release-pr-go-toolchain

Conversation

@theogravity
Copy link
Copy Markdown
Contributor

Summary

The release-pr workflow fails on push-to-main after a sub-module touched by a changeset requires Go 1.25 (every sub-module does). Run 25272224403 is the surfaced incident.

tidy in /home/runner/work/loglayer-go/loglayer-go/transports/cli: exit status 1
go: go.mod requires go >= 1.25.0 (running go 1.24.13; GOTOOLCHAIN=local)

Root cause

monorel v0.12+ runs go mod tidy per sub-module as part of pr and release to refresh go.sum entries. The GitHub runner default Go is older than 1.25 and the monorel CI action sets GOTOOLCHAIN=local, so the toolchain doesn't auto-upgrade. Tidy then fails on every sub-module.

The action version is pinned (disaresta-org/monorel/ci/github@v0.11.0), but the action invokes the monorel binary under latest. Between PR #74's release-pr run (which resolved latest to ≤v0.11.0) and PR #76's run, monorel published v0.12.0 and v0.13.0. PR #76's run picked up v0.13.0, which surfaces the toolchain mismatch.

Fix

Add actions/setup-go@v5 with go-version: '1.25' before the monorel invocation in both release-pr.yml and release.yml. Mirrors the setup-go pattern that ci.yml already uses for the regular CI matrix.

This is robust against future monorel version bumps that need newer toolchains, since the runner now always has 1.25 (and Go's default GOTOOLCHAIN=auto would auto-upgrade past 1.25 if a sub-module ever requires it; the monorel action's GOTOOLCHAIN=local only blocks the auto-download, not a pre-installed newer version).

Test plan

  • After merge, the next push-to-main triggers release-pr and the workflow completes successfully (release PR opens / updates).
  • At the next release-pr merge, the release workflow runs the publish pipeline cleanly.

🤖 Generated with Claude Code

monorel v0.12+ runs `go mod tidy` per sub-module as part of `pr` and
`release` to refresh go.sum entries. Every sub-module's go.mod
requires `go 1.25.0`, but the GitHub runner default is older and the
monorel CI action sets GOTOOLCHAIN=local, so the toolchain doesn't
auto-upgrade. The tidy step then fails with:

  go: go.mod requires go >= 1.25.0 (running go 1.24.13;
      GOTOOLCHAIN=local)

This bit the release-pr workflow when it ran on PR #76's merge commit
because monorel's `latest` tag had moved past v0.11.0 between PR #74's
release (v0.10.x) and PR #76's release (v0.13.0). The action version is
pinned (`@v0.11.0`), but the action invokes the binary under `latest`.

Add an `actions/setup-go@v5` step with `go-version: '1.25'` before the
monorel invocation in both release-pr.yml and release.yml. Mirrors the
setup-go pattern that ci.yml already uses for the regular CI matrix.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

1 participant