40 lines
895 B
Bash
Executable File
40 lines
895 B
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
repo=$(CDPATH= cd -- "$(dirname "$0")/.." && pwd)
|
|
out=${1:-"$repo/dist"}
|
|
: "${VERSION:?set VERSION to the release version, for example v1.0.0}"
|
|
|
|
case $VERSION in
|
|
*[!A-Za-z0-9._+-]*|'')
|
|
echo "VERSION contains unsupported characters: $VERSION" >&2
|
|
exit 2
|
|
;;
|
|
esac
|
|
|
|
mkdir -p "$out"
|
|
out=$(CDPATH= cd -- "$out" && pwd)
|
|
rm -f "$out/proxyctl-linux-amd64" "$out/proxyctl-linux-arm64" "$out/SHA256SUMS"
|
|
|
|
build() {
|
|
arch=$1
|
|
output="$out/proxyctl-linux-$arch"
|
|
(
|
|
cd "$repo"
|
|
GOENV=off GOFLAGS= CGO_ENABLED=0 GOOS=linux GOARCH="$arch" \
|
|
go build -mod=readonly -buildvcs=false -trimpath \
|
|
-ldflags="-s -w -X main.version=$VERSION" \
|
|
-o "$output" ./cmd/proxyctl
|
|
)
|
|
}
|
|
|
|
umask 022
|
|
build amd64
|
|
build arm64
|
|
(
|
|
cd "$out"
|
|
sha256sum proxyctl-linux-amd64 proxyctl-linux-arm64 > SHA256SUMS
|
|
)
|
|
|
|
printf 'built Linux amd64 and arm64 binaries in %s\n' "$out"
|