#!/usr/bin/env bash set -euo pipefail root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$root" version="${RELEASE_TAG:-}" if [ -z "$version" ]; then version="${GITHUB_REF_NAME:-}" fi if [ -z "$version" ] && [ -n "${GITHUB_REF:-}" ]; then version="${GITHUB_REF##*/}" fi if [ -z "$version" ]; then version="dev" fi rm -rf dist mkdir -p dist targets=( "linux amd64" "linux arm64" "darwin amd64" "darwin arm64" "windows amd64" "windows arm64" ) for target in "${targets[@]}"; do read -r goos goarch <<<"$target" name="dataxl_${version}_${goos}_${goarch}" workdir="dist/${name}" mkdir -p "$workdir" binary="dataxl" if [ "$goos" = "windows" ]; then binary="dataxl.exe" fi CGO_ENABLED=0 GOOS="$goos" GOARCH="$goarch" go build \ -trimpath \ -ldflags="-s -w" \ -o "$workdir/$binary" \ ./cmd/dataxl cp README.md "$workdir/" if [ "$goos" = "windows" ]; then (cd dist && zip -qr "${name}.zip" "$name") else (cd dist && tar -czf "${name}.tar.gz" "$name") fi rm -rf "$workdir" done (cd dist && sha256sum dataxl_* > checksums.txt)