#!/bin/bash set -e # Get version from deno.json VERSION=$(cat deno.json | grep -o '"version": *"[^"]*"' | cut -d'"' -f4) BINARY_DIR="dist/binaries" echo "================================================" echo " SPARK Compilation Script" echo " Version: ${VERSION}" echo "================================================" echo "" echo "Compiling for all supported platforms..." echo "" # Clean up old binaries and create fresh directory rm -rf "$BINARY_DIR" mkdir -p "$BINARY_DIR" echo "→ Cleaned old binaries from $BINARY_DIR" echo "" # Linux x86_64 echo "→ Compiling for Linux x86_64..." deno compile --allow-all --no-check --output "$BINARY_DIR/spark-linux-x64" \ --target x86_64-unknown-linux-gnu mod.ts echo " ✓ Linux x86_64 complete" echo "" # Linux ARM64 echo "→ Compiling for Linux ARM64..." deno compile --allow-all --no-check --output "$BINARY_DIR/spark-linux-arm64" \ --target aarch64-unknown-linux-gnu mod.ts echo " ✓ Linux ARM64 complete" echo "" # macOS x86_64 echo "→ Compiling for macOS x86_64..." deno compile --allow-all --no-check --output "$BINARY_DIR/spark-macos-x64" \ --target x86_64-apple-darwin mod.ts echo " ✓ macOS x86_64 complete" echo "" # macOS ARM64 echo "→ Compiling for macOS ARM64..." deno compile --allow-all --no-check --output "$BINARY_DIR/spark-macos-arm64" \ --target aarch64-apple-darwin mod.ts echo " ✓ macOS ARM64 complete" echo "" # Windows x86_64 echo "→ Compiling for Windows x86_64..." deno compile --allow-all --no-check --output "$BINARY_DIR/spark-windows-x64.exe" \ --target x86_64-pc-windows-msvc mod.ts echo " ✓ Windows x86_64 complete" echo "" echo "================================================" echo " Compilation Summary" echo "================================================" echo "" ls -lh "$BINARY_DIR/" | tail -n +2 echo "" echo "✓ All binaries compiled successfully!" echo "" echo "Binary location: $BINARY_DIR/" echo "" echo "To create a release:" echo " 1. Test the binaries on their respective platforms" echo " 2. Create a git tag: git tag v${VERSION}" echo " 3. Push the tag: git push origin v${VERSION}" echo " 4. Upload the binaries to the release" echo ""