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
cmd/skipper: fix version and commit for go install #2954
Merged
Merged
Conversation
This file contains 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
When skipper is installed via `go install` it has empty version and commit values: ``` ~$ go install github.com/zalando/skipper/cmd/skipper@latest go: downloading github.com/zalando/skipper v0.21.2 ~$ skipper -version Skipper version (commit: , runtime: go1.22.0) ``` Current build process of binaries specifies version and commit via `-ldflags`. This change uses debug buildinfo to get version and commit if they are not specified by `-ldflags` which is compatible with the current build process but should also work for `go install` case. If this change fixes `go install` case (which can only be tested after package version is published) then we can add the same snippet to other binaries and get rid of COMMIT_HASH ldflag. We can not get rid of `-ldflags` fully though because `go build` does not stamp version (see golang/go#50603). Signed-off-by: Alexander Yastrebov <alexander.yastrebov@zalando.de>
func init() { | ||
if info, ok := debug.ReadBuildInfo(); ok { | ||
if version == "" { | ||
version = info.Main.Version |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
go install should populate this from the package version that matches git tag.
👍 |
let's try :) |
👍 |
The version is set now but commit is not
|
AlexanderYastrebov
added a commit
that referenced
this pull request
Feb 23, 2024
Binary installed via `go install github.com/zalando/skipper/cmd/skipper@latest` does not contain `vcs.revision`, see golang/go#65904 Followup on #2954 Signed-off-by: Alexander Yastrebov <alexander.yastrebov@zalando.de>
AlexanderYastrebov
added a commit
that referenced
this pull request
Feb 23, 2024
Binary installed via `go install github.com/zalando/skipper/cmd/skipper@latest` does not contain `vcs.revision`, see golang/go#65904 Followup on #2954 Signed-off-by: Alexander Yastrebov <alexander.yastrebov@zalando.de>
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.
When skipper is installed via
go install
it has empty version and commit values:Current build process of binaries specifies version and commit via
-ldflags
.This change uses debug buildinfo to get version and commit if they are not specified by
-ldflags
which is compatible with the current build process but should also work forgo install
case.If this change fixes
go install
case (which can only be tested after package version is published) then we can add the same snippet to other binaries and get rid of COMMIT_HASH ldflag.We can not get rid of
-ldflags
fully though becausego build
does not stamp version (see golang/go#50603).