59 lines
1.1 KiB
Bash
Executable File
59 lines
1.1 KiB
Bash
Executable File
#!/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)
|