#!/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/