mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-28 01:41:48 -06:00
39 lines
1.3 KiB
Bash
39 lines
1.3 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
set -uo pipefail
|
||
|
|
||
|
# Trim the "v" prefix, if any.
|
||
|
VERSION="${RAW_VERSION#v}"
|
||
|
|
||
|
# Split off the build metadata part, if any
|
||
|
# (we won't actually include it in our final version, and handle it only for
|
||
|
# compleness against semver syntax.)
|
||
|
IFS='+' read -ra VERSION BUILD_META <<< "$VERSION"
|
||
|
|
||
|
# Separate out the prerelease part, if any
|
||
|
# (version.go expects it to be in a separate variable)
|
||
|
IFS='-' read -r BASE_VERSION PRERELEASE <<< "$VERSION"
|
||
|
|
||
|
EXPERIMENTS_ENABLED=0
|
||
|
if [[ "$PRERELEASE" == alpha* ]]; then
|
||
|
EXPERIMENTS_ENABLED=1
|
||
|
fi
|
||
|
if [[ "$PRERELEASE" == dev* ]]; then
|
||
|
EXPERIMENTS_ENABLED=1
|
||
|
fi
|
||
|
|
||
|
LDFLAGS="-w -s"
|
||
|
if [[ "$EXPERIMENTS_ENABLED" == 1 ]]; then
|
||
|
LDFLAGS="${LDFLAGS} -X 'main.experimentsAllowed=yes'"
|
||
|
fi
|
||
|
LDFLAGS="${LDFLAGS} -X 'github.com/hashicorp/terraform/version.Version=${BASE_VERSION}'"
|
||
|
LDFLAGS="${LDFLAGS} -X 'github.com/hashicorp/terraform/version.Prerelease=${PRERELEASE}'"
|
||
|
|
||
|
echo "Building Terraform CLI ${VERSION}"
|
||
|
if [[ "$EXPERIMENTS_ENABLED" == 1 ]]; then
|
||
|
echo "This build allows use of experimental features"
|
||
|
fi
|
||
|
echo "product-version=${VERSION}" | tee -a "${GITHUB_OUTPUT}"
|
||
|
echo "product-version-base=${BASE_VERSION}" | tee -a "${GITHUB_OUTPUT}"
|
||
|
echo "product-version-pre=${PRERELEASE}" | tee -a "${GITHUB_OUTPUT}"
|
||
|
echo "experiments=${EXPERIMENTS_ENABLED}" | tee -a "${GITHUB_OUTPUT}"
|
||
|
echo "go-ldflags=${LDFLAGS}" | tee -a "${GITHUB_OUTPUT}"
|