-
-
Notifications
You must be signed in to change notification settings - Fork 12
Use go.mod
as source of Go version number for workflows
#801
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
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
@per1234
per1234
added
type: enhancement
Proposed improvement
topic: infrastructure
Related to project infrastructure
labels
Oct 16, 2024
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@ ## main #801 +/- ## ======================================= Coverage 89.97% 89.97% ======================================= Files 44 44 Lines 6772 6772 ======================================= Hits 6093 6093 Misses 555 555 Partials 124 124
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
Go is used in the development and maintenance of the project. A standardized version of Go is used for all operations. This version is defined in the `go` directive of the go.mod metadata file. Go is installed in the GitHub Actions runner environments using the "actions/setup-go" action, which also must be configured to install the correct version of Go. Previously the version number for use by the "actions/setup-go" action was defined in each workflow. This meant that we had multiple copies of the Go version information, all of which had to be kept in sync. Fortunately, support for using `go.mod` as the source of version information for the "actions/setup-go" action was recently added. This means it is now possible for all workflows to get the Go version from a single source.
@per1234
per1234
force-pushed
the
go_mod-versioning
branch
from
November 22, 2024 05:51
be9eff0
to
4f2f4f5
Compare
Support for specifying the Go toolchain version compatibility of a module to patch version granularity via the `go` directive of the go.mod module metadata file was introduced in Go 1.21.0. The `go` directives of the project's modules were changed to specify the patch version when the project's Go version was bumped to 1.22.3. However, support for this version format was not added to the `go fix` command until Go 1.22.7. This caused the `go fix` command (which is invoked by the "check-outdated" job of the project's "Check Go" workflow) to fail when a version of Go between 1.21.0 and 1.22.6 was used: ``` invalid -go=go1.22.3 exit status 2 task: Failed to run task "go:fix": exit status 1 ``` Previously, this did not affect the CI system because the workflows only specified the Go version to be installed by the "actions/setup-go" action to the minor version (1.22), and the action happened to use a version of Go >1.22.6. However, the "actions/setup-go" action now installs the exact version of Go specified the `go` directive, which means the runs of the "Check Go" workflow would fail with the above error if the value of the `go` directive is >=1.21.0 and <1.22.7. The chosen solution is to bump the value of the `go` directive to a version with the `go fix` command bug fixed. Although this could be achieved by a bump to 1.22.7, it makes sense to bump Go all the way to the latest version in the 1.22.x series (because apparently the production release build system is not compatible with Go 1.23.x).
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.
Go is used in the development and maintenance of the project. A standardized version of Go is used for all operations.
This version is defined in the
go
directive of thego.mod
metadata file.Go is installed in the GitHub Actions runner environments using the actions/setup-go action, which also must be configured to install the correct version of Go. Previously the version number for use by the actions/setup-go action was defined in each workflow. This meant that we had multiple copies of the Go version information, all of which had to be kept in sync.
Fortunately, support for using
go.mod
as the source of version information for the actions/setup-go action was recently added:https://github.com/actions/setup-go/tree/main#getting-go-version-from-the-gomod-file
This means it is now possible for all workflows to get the Go version from a single source.