51 lines
1.4 KiB
Bash
Executable File
51 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# macOS build wrapper using Docker
|
|
# Builds Alpine image in Docker container
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
BUILD_TYPE="${1:-iso}"
|
|
|
|
echo "🍎 Building on macOS via Docker"
|
|
echo ""
|
|
|
|
# Check for Docker
|
|
if ! command -v docker >/dev/null 2>&1; then
|
|
echo "❌ Docker not found. Install Docker Desktop: https://www.docker.com/products/docker-desktop"
|
|
exit 1
|
|
fi
|
|
|
|
if ! docker info >/dev/null 2>&1; then
|
|
echo "❌ Docker daemon not running. Start Docker Desktop."
|
|
exit 1
|
|
fi
|
|
|
|
# Build Docker image if needed
|
|
echo "🔨 Building Docker build image..."
|
|
docker build -f "$SCRIPT_DIR/Dockerfile.build" -t archipelago-builder:latest "$SCRIPT_DIR" || {
|
|
echo "❌ Docker image build failed"
|
|
exit 1
|
|
}
|
|
|
|
# Run build in container
|
|
echo "🚀 Running build in container..."
|
|
echo " This may take 30-60 minutes on first build..."
|
|
echo ""
|
|
|
|
docker run --rm -it \
|
|
-v "$PROJECT_ROOT:/workspace" \
|
|
-v "$SCRIPT_DIR/results:/results" \
|
|
-v "$SCRIPT_DIR/build:/build" \
|
|
-v "$SCRIPT_DIR/apks:/apks" \
|
|
-e BUILD_TYPE="$BUILD_TYPE" \
|
|
-e ARCHIPELAGO_VERSION="${ARCHIPELAGO_VERSION:-0.1.0}" \
|
|
-e ALPINE_VERSION="${ALPINE_VERSION:-3.19}" \
|
|
-e ARCH="${ARCH:-x86_64}" \
|
|
archipelago-builder:latest \
|
|
sh -c "cd /workspace/image-recipe && ./build-linux.sh $BUILD_TYPE"
|
|
|
|
echo ""
|
|
echo "✅ Build complete! Check results/ directory"
|