29 lines
953 B
Bash
Executable file
29 lines
953 B
Bash
Executable file
#!/bin/sh
|
|
# Build multi-arch release archives for tarakan-client. Used by Forgejo Actions.
|
|
set -eu
|
|
version="${VERSION:-dev}"
|
|
mkdir -p dist staging
|
|
targets="linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64 windows/arm64"
|
|
for target in $targets; do
|
|
goos=${target%/*}
|
|
goarch=${target#*/}
|
|
archive="tarakan_${version}_${goos}_${goarch}"
|
|
package="staging/${archive}"
|
|
mkdir -p "${package}"
|
|
binary="tarakan"
|
|
if [ "$goos" = "windows" ]; then
|
|
binary="tarakan.exe"
|
|
fi
|
|
version_ld=${version#v}
|
|
CGO_ENABLED=0 GOOS="$goos" GOARCH="$goarch" \
|
|
go build -trimpath -ldflags="-s -w -X main.version=${version_ld}" \
|
|
-o "${package}/${binary}" ./cmd/tarakan
|
|
cp LICENSE "${package}/"
|
|
if [ "$goos" = "windows" ]; then
|
|
(cd staging && zip -q -r "../dist/${archive}.zip" "${archive}")
|
|
else
|
|
tar -C staging -czf "dist/${archive}.tar.gz" "${archive}"
|
|
fi
|
|
done
|
|
(cd dist && sha256sum tarakan_* > checksums.txt)
|
|
ls -la dist/
|