Take the Go version for releases from go.mod

release.yml installs a fixed Go version for building a release, and it
must match the release.yml on master. A patch release from a branch off
an older tag is therefore built with master's Go version, not with the
one that branch uses. For example, once master moves to Go 1.27, a
v0.66.3 built from a branch off v0.66.2 would no longer run on macOS
12, although v0.66.2 does.

Read the version from the go line of the checked-out go.mod instead,
and add ".x" so that setup-go installs the latest patch release.
setup-go's go-version-file input can't do this; for "go 1.26.0" it
installs exactly 1.26.0. Read the version before pushing the tag, so
that a go.mod without a go line stops the release early.

This also removes release.yml from the files to edit when updating Go.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan Haller
2026-10-16 14:23:10 +02:00
co-authored by Claude Opus 5.5
parent e718b4b63e
commit 5858bb7193
+19 -1
View File
@@ -161,6 +161,24 @@ jobs:
echo "New tag: $new_tag"
echo "new_tag=$new_tag" >> $GITHUB_ENV
- name: Get Go version
run: |
# Take the Go version from the go.mod of the code being released, so
# that a patch release from a branch off an older tag is built with
# that branch's Go version, not with master's.
#
# Turn "go 1.26.0" into "1.26.x" so that setup-go installs the latest
# patch release. With go-version-file, it would install exactly 1.26.0.
go_version=$(sed -n 's/^go \([0-9]*\.[0-9]*\).*/\1.x/p' go.mod)
if ! [[ $go_version =~ ^[0-9]+\.[0-9]+\.x$ ]]; then
echo "Error: Could not read the go version from go.mod"
exit 1
fi
echo "Go version: $go_version"
echo "go_version=$go_version" >> $GITHUB_ENV
- name: Create and Push Tag
env:
NEW_TAG: ${{ env.new_tag }}
@@ -174,7 +192,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v7
with:
go-version: 1.26.x
go-version: ${{ env.go_version }}
- name: Run goreleaser
uses: goreleaser/goreleaser-action@f06c13b6b1a9625abc9e6e439d9c05a8f2190e94 # v7.2.3