bricks-mp/test/build_all.sh
yumoqing 759b0585a8 Add offline Gradle build scripts for macOS
- build.sh scripts prioritize ~/.gradle/gradle-8.5/bin/gradle
- New build_all.sh orchestrates generic-client and sageclient builds
- sageclient build includes JDK 17/21 auto-detection
- Avoids network timeouts from services.gradle.org
2026-05-21 18:01:20 +08:00

95 lines
3.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# ──────────────────────────────────────────────────────────────
# bricks-mp — Build all test clients (generic-client, sageclient)
#
# Usage:
# ./build_all.sh # Build all
# ./build_all.sh generic # Build generic-client only
# ./build_all.sh sage # Build sageclient only
# ./build_all.sh run # Run generic-client
# ./build_all.sh clean # Clean all
# ──────────────────────────────────────────────────────────────
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
# ─── Find Gradle ───
find_gradle() {
if [ -x "$HOME/.gradle/gradle-8.5/bin/gradle" ]; then
echo "$HOME/.gradle/gradle-8.5/bin/gradle"
return 0
fi
if [ -x "$SCRIPT_DIR/../gradlew" ]; then
echo "$SCRIPT_DIR/../gradlew"
return 0
fi
if command -v gradle >/dev/null 2>&1; then
echo "gradle"
return 0
fi
return 1
}
if ! GRADLE_CMD="$(find_gradle)"; then
echo "ERROR: Gradle not found. Place at ~/.gradle/gradle-8.5 or install system gradle." >&2
exit 1
fi
echo "Using Gradle: $GRADLE_CMD"
MODE="${1:-build}"
gradle_build() {
local client="$1"
local dir="$SCRIPT_DIR/$client"
if [ ! -d "$dir" ]; then
echo "SKIP: $client (directory not found)"
return 0
fi
echo ""
echo "══════════════════════════════════════════════"
echo " Building: $client"
echo "══════════════════════════════════════════════"
cd "$dir"
case "$MODE" in
build|*)
"$GRADLE_CMD" compileKotlinJvm --no-daemon --no-configuration-cache
;;
run)
"$GRADLE_CMD" run --no-daemon --no-configuration-cache
;;
clean)
"$GRADLE_CMD" clean --no-daemon --no-configuration-cache
;;
package)
"$GRADLE_CMD" createDistributable --no-daemon --no-configuration-cache
;;
esac
echo "OK: $client"
}
case "$MODE" in
generic)
gradle_build generic-client
;;
sage)
gradle_build sageclient
;;
clean)
gradle_build generic-client
gradle_build sageclient
;;
run)
gradle_build generic-client
;;
build|*)
gradle_build generic-client
gradle_build sageclient
echo ""
echo "══════════════════════════════════════════════"
echo " All builds completed"
echo "══════════════════════════════════════════════"
;;
esac