58 lines
2 KiB
Shell
Executable file
58 lines
2 KiB
Shell
Executable file
#!/usr/bin/env bash
|
|
# Cross-compile Windows + Linux release archives for printit.verae.ai
|
|
set -euo pipefail
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$ROOT"
|
|
|
|
VERSION="${VERSION:-$(go run ./cmd/verae-print version 2>/dev/null || true)}"
|
|
if [[ -z "$VERSION" || "$VERSION" == *"go: "* ]]; then
|
|
VERSION=$(grep -E 'HelperVersion\s*=' internal/job/job.go | head -1 | sed -E 's/.*"([^"]+)".*/\1/')
|
|
fi
|
|
OUT="${OUT:-$ROOT/build/win-linux}"
|
|
rm -rf "$OUT"
|
|
mkdir -p "$OUT"
|
|
|
|
echo "Building verae-print $VERSION → $OUT"
|
|
|
|
build_one() {
|
|
local goos="$1" goarch="$2" label="$3"
|
|
local dir="$OUT/VeraePrintStamp-${label}-${VERSION}"
|
|
mkdir -p "$dir"
|
|
local bin="verae-print"
|
|
[[ "$goos" == "windows" ]] && bin="verae-print.exe"
|
|
echo "→ $goos/$goarch"
|
|
CGO_ENABLED=0 GOOS="$goos" GOARCH="$goarch" go build -trimpath -ldflags "-s -w" -o "$dir/$bin" ./cmd/verae-print
|
|
if [[ "$goos" == "linux" ]]; then
|
|
mkdir -p "$dir/cups"
|
|
cp platform/linux/install.sh "$dir/"
|
|
cp platform/linux/README.txt "$dir/"
|
|
cp platform/linux/cups/backend-verae.sh "$dir/cups/"
|
|
chmod +x "$dir/install.sh" "$dir/cups/backend-verae.sh" "$dir/$bin"
|
|
tar -C "$OUT" -czf "$OUT/VeraePrintStamp-${label}-${VERSION}.tar.gz" "VeraePrintStamp-${label}-${VERSION}"
|
|
cp "$OUT/VeraePrintStamp-${label}-${VERSION}.tar.gz" "$OUT/VeraePrintStamp-${label}.tar.gz"
|
|
else
|
|
cp platform/windows/install.ps1 "$dir/"
|
|
cp platform/windows/README.txt "$dir/"
|
|
(
|
|
cd "$OUT"
|
|
zip -qr "VeraePrintStamp-${label}-${VERSION}.zip" "VeraePrintStamp-${label}-${VERSION}"
|
|
cp "VeraePrintStamp-${label}-${VERSION}.zip" "VeraePrintStamp-${label}.zip"
|
|
)
|
|
fi
|
|
}
|
|
|
|
build_one linux amd64 linux-amd64
|
|
build_one linux arm64 linux-arm64
|
|
build_one windows amd64 windows-amd64
|
|
# Windows arm64 is increasingly common
|
|
build_one windows arm64 windows-arm64
|
|
|
|
(
|
|
cd "$OUT"
|
|
shasum -a 256 VeraePrintStamp-*.tar.gz VeraePrintStamp-*.zip 2>/dev/null | tee SHA256SUMS
|
|
)
|
|
|
|
echo
|
|
echo "Artifacts:"
|
|
ls -lh "$OUT"/VeraePrintStamp-*.{tar.gz,zip} 2>/dev/null
|
|
echo "Done."
|