mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-29 13:05:46 +00:00
54e6c3a290
When building with redo, also include the git commit hash from the proprietary repo, so that we have a precise commit that identifies all build info (including Go toolchain version). Add a top-level build script demonstrating to downstream distros how to burn the right information into builds. Adjust `tailscale version` to print commit hashes when available. Fixes #841. Signed-off-by: David Anderson <danderson@tailscale.com>
23 lines
901 B
Bash
Executable File
23 lines
901 B
Bash
Executable File
#!/usr/bin/env sh
|
|
#
|
|
# Runs `go build` with flags configured for binary distribution. All
|
|
# it does differently from `go build` is burn git commit and version
|
|
# information into the binaries, so that we can track down user
|
|
# issues.
|
|
#
|
|
# If you're packaging Tailscale for a distro, please consider using
|
|
# this script, or executing equivalent commands in your
|
|
# distro-specific build system.
|
|
|
|
set -euo pipefail
|
|
|
|
describe=$(git describe --long --abbrev=9)
|
|
# --abbrev=200 is an arbitrary large number to capture the entire git
|
|
# hash without trying to compact it.
|
|
commit=$(git describe --dirty --exclude "*" --always --abbrev=200)
|
|
|
|
long=$(./version/mkversion.sh long "$describe" "")
|
|
short=$(./version/mkversion.sh short "$describe" "")
|
|
|
|
exec go build -tags xversion -ldflags "-X tailscale.com/version.Long=${long} -X tailscale.com/version.Short=${short} -X tailscale.com/version.GitCommit=${commit}" "$@"
|