46 lines
1.2 KiB
Bash
46 lines
1.2 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Build Archipelago backend for Alpine Linux (x86_64-musl)
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||
|
|
|
||
|
|
echo "🦀 Building Archipelago Backend for Alpine Linux"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Create build directory
|
||
|
|
BUILD_DIR="$SCRIPT_DIR/build/backend"
|
||
|
|
mkdir -p "$BUILD_DIR"
|
||
|
|
|
||
|
|
# Use Docker with Rust Alpine image to build
|
||
|
|
echo "🐳 Building in Alpine Docker container..."
|
||
|
|
|
||
|
|
docker run --rm \
|
||
|
|
-v "$PROJECT_ROOT:/workspace" \
|
||
|
|
-v "$BUILD_DIR:/output" \
|
||
|
|
-w /workspace/core \
|
||
|
|
rust:alpine \
|
||
|
|
sh -c '
|
||
|
|
echo "📦 Installing build dependencies..."
|
||
|
|
apk add --no-cache musl-dev openssl-dev openssl-libs-static pkgconfig gcc
|
||
|
|
|
||
|
|
echo "🔨 Building Archipelago backend (native Alpine build)..."
|
||
|
|
cd archipelago && cargo build --release
|
||
|
|
|
||
|
|
echo "📋 Copying binary to output..."
|
||
|
|
cp ../target/release/archipelago /output/
|
||
|
|
|
||
|
|
echo "✅ Build complete!"
|
||
|
|
ls -lh /output/archipelago
|
||
|
|
' || {
|
||
|
|
echo "❌ Build failed"
|
||
|
|
exit 1
|
||
|
|
}
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "✅ Backend built successfully!"
|
||
|
|
echo " Binary: $BUILD_DIR/archipelago"
|
||
|
|
echo " Size: $(du -h "$BUILD_DIR/archipelago" | cut -f1)"
|
||
|
|
echo ""
|