diff --git a/cmd/certificates/main.go b/cmd/certificates/main.go index 76789b391..2ada309df 100644 --- a/cmd/certificates/main.go +++ b/cmd/certificates/main.go @@ -14,6 +14,7 @@ import ( "storj.io/storj/certificate" "storj.io/storj/certificate/authorization" "storj.io/storj/pkg/revocation" + _ "storj.io/storj/private/version" // This attaches version information during release builds. ) var ( diff --git a/cmd/identity/main.go b/cmd/identity/main.go index fd7ea8bfa..ca7ab6894 100644 --- a/cmd/identity/main.go +++ b/cmd/identity/main.go @@ -25,6 +25,7 @@ import ( "storj.io/private/version" "storj.io/storj/certificate/certificateclient" "storj.io/storj/pkg/revocation" + _ "storj.io/storj/private/version" // This attaches version information during release builds. "storj.io/storj/private/version/checker" ) diff --git a/cmd/inspector/main.go b/cmd/inspector/main.go index 1b2485cf0..6000073f9 100644 --- a/cmd/inspector/main.go +++ b/cmd/inspector/main.go @@ -23,6 +23,7 @@ import ( "storj.io/common/storj" "storj.io/private/process" "storj.io/storj/private/prompt" + _ "storj.io/storj/private/version" // This attaches version information during release builds. "storj.io/uplink/private/eestream" ) diff --git a/cmd/satellite/main.go b/cmd/satellite/main.go index 6b1c4a6f7..17ef49fec 100644 --- a/cmd/satellite/main.go +++ b/cmd/satellite/main.go @@ -26,6 +26,7 @@ import ( "storj.io/storj/cmd/satellite/reports" "storj.io/storj/pkg/cache" "storj.io/storj/pkg/revocation" + _ "storj.io/storj/private/version" // This attaches version information during release builds. "storj.io/storj/satellite" "storj.io/storj/satellite/accounting/live" "storj.io/storj/satellite/compensation" diff --git a/cmd/segment-reaper/main.go b/cmd/segment-reaper/main.go index dcf4d323d..a8e8bd427 100644 --- a/cmd/segment-reaper/main.go +++ b/cmd/segment-reaper/main.go @@ -7,6 +7,7 @@ import ( "github.com/spf13/cobra" "storj.io/private/process" + _ "storj.io/storj/private/version" // This attaches version information during release builds. ) var ( diff --git a/cmd/storagenode-updater/main.go b/cmd/storagenode-updater/main.go index d009461b7..bc50edf35 100644 --- a/cmd/storagenode-updater/main.go +++ b/cmd/storagenode-updater/main.go @@ -34,6 +34,7 @@ import ( "storj.io/private/cfgstruct" "storj.io/private/process" "storj.io/private/version" + _ "storj.io/storj/private/version" // This attaches version information during release builds. "storj.io/storj/private/version/checker" ) diff --git a/cmd/storagenode/main.go b/cmd/storagenode/main.go index 58300ff08..669c23ab8 100644 --- a/cmd/storagenode/main.go +++ b/cmd/storagenode/main.go @@ -22,6 +22,7 @@ import ( "storj.io/private/process" "storj.io/private/version" "storj.io/storj/pkg/revocation" + _ "storj.io/storj/private/version" // This attaches version information during release builds. "storj.io/storj/storagenode" "storj.io/storj/storagenode/storagenodedb" ) diff --git a/cmd/uplink/main.go b/cmd/uplink/main.go index 1f6a6e886..3b28398e0 100644 --- a/cmd/uplink/main.go +++ b/cmd/uplink/main.go @@ -9,6 +9,7 @@ import ( "storj.io/private/process" "storj.io/storj/cmd/uplink/cmd" + _ "storj.io/storj/private/version" // This attaches version information during release builds. ) func main() { diff --git a/cmd/versioncontrol/main.go b/cmd/versioncontrol/main.go index a5f8b5e33..6bb2dd219 100644 --- a/cmd/versioncontrol/main.go +++ b/cmd/versioncontrol/main.go @@ -14,6 +14,7 @@ import ( "storj.io/common/fpath" "storj.io/private/cfgstruct" "storj.io/private/process" + _ "storj.io/storj/private/version" // This attaches version information during release builds. "storj.io/storj/versioncontrol" ) diff --git a/private/version/release.go b/private/version/release.go new file mode 100644 index 000000000..ae486db4c --- /dev/null +++ b/private/version/release.go @@ -0,0 +1,23 @@ +// Copyright (C) 2020 Storj Labs, Inc. +// See LICENSE for copying information. + +package version + +import _ "unsafe" // needed for go:linkname + +//go:linkname buildTimestamp storj.io/private/version.buildTimestamp +var buildTimestamp string + +//go:linkname buildCommitHash storj.io/private/version.buildCommitHash +var buildCommitHash string + +//go:linkname buildVersion storj.io/private/version.buildVersion +var buildVersion string + +//go:linkname buildRelease storj.io/private/version.buildRelease +var buildRelease string + +// ensure that linter understands that the variables are being used. +func init() { use(buildTimestamp, buildCommitHash, buildVersion, buildRelease) } + +func use(...interface{}) {} diff --git a/scripts/tag-release.sh b/scripts/tag-release.sh index 4955b6136..6f1b6c362 100755 --- a/scripts/tag-release.sh +++ b/scripts/tag-release.sh @@ -35,17 +35,29 @@ TIMESTAMP=$(date +%s) COMMIT=$(git rev-parse HEAD) cat > ./private/version/release.go <