I want to add the current git revision number to the the binary built by go build
so that I can do something like ./mybinary --revision
to see which revision it is built from (usually for troubleshooting later on after deployment).
Obviously I cannot put the revision number into the source since that will change the source with a new revision.
I'm wondering if there is any other way to do this?
Or do you think this is just a bad idea? If so, what's the recommended way to establish the relation between built binaries and its source version?
Version numbers do not seem to be a good idea with a distributed version control system.
If you can get the git revision into $VERSION and have a variable named version
(type string) in your main package, you can set it during the build with:
#!/bin/sh
VERSION=`git rev-parse --short HEAD`
go build -ldflags "-X main.version=$VERSION" myfile.go
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With