mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-28 22:55:41 +00:00
* Ensure Bazel is available in self-hosted workflows * Allow Bazel CI to use Command Line Tools * Set macOS C++ deployment target for Bazel * Use Bazel macOS minimum OS flags * Raise macOS Bazel deployment target for filesystem * Ensure git-lfs is available for CI fetches * Authenticate CI LFS fetches with workflow token * Disable stale LFS hooks during CI checkout * Disable LFS filters during CI checkout * Prepare Git LFS before persistent checkout * Harden generated Bazel rc and LFS auth * Let Xcode sync skip without full Xcode * Harden Unity build cache markers * Require full Xcode for mactools sync
63 lines
1.9 KiB
Bash
Executable File
63 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euxo pipefail
|
|
|
|
# Read Unity version from project file
|
|
UNITY_VERSION=$(grep "m_EditorVersion:" src/main/csharp/net/eagle0/clients/unity/eagle0/ProjectSettings/ProjectVersion.txt | head -1 | sed 's/m_EditorVersion: //')
|
|
|
|
WORKSPACE=`pwd`
|
|
UNITY_INSTALL_PATH="/Applications/Unity/Hub/Editor"
|
|
BUILD_DIR=$1
|
|
LOG_PATH=$2
|
|
|
|
echo "Building in $1"
|
|
|
|
echo "Cleaning up $1"
|
|
/bin/rm -rf $1
|
|
/bin/mkdir -p $1
|
|
|
|
# Use custom build script that builds Addressables before the player
|
|
# Capture exit code to show log on failure
|
|
set +e
|
|
${UNITY_INSTALL_PATH}/${UNITY_VERSION}/Unity.app/Contents/MacOS/Unity \
|
|
-nographics \
|
|
-batchmode \
|
|
-quit \
|
|
-executeMethod BuildScript.BuildWindowsPlayer \
|
|
-buildPath "$BUILD_DIR/eagle0.exe" \
|
|
-logFile $LOG_PATH \
|
|
-projectPath "$WORKSPACE/src/main/csharp/net/eagle0/clients/unity/eagle0"
|
|
UNITY_EXIT_CODE=$?
|
|
set -e
|
|
|
|
if [ $UNITY_EXIT_CODE -ne 0 ]; then
|
|
echo ""
|
|
echo "Unity build failed with exit code $UNITY_EXIT_CODE"
|
|
echo "=== Unity Editor Log (last 200 lines) ==="
|
|
tail -200 "$LOG_PATH" || echo "Could not read log file at $LOG_PATH"
|
|
echo "=== End of Unity Editor Log ==="
|
|
exit $UNITY_EXIT_CODE
|
|
fi
|
|
|
|
if [ ! -f "$LOG_PATH" ]; then
|
|
echo ""
|
|
echo "ERROR: Unity exited successfully but did not write an editor log at $LOG_PATH"
|
|
exit 1
|
|
fi
|
|
|
|
# Fail the build if any prefab references are broken — this produces a player
|
|
# that launches but has null Inspector fields, which is hard to debug.
|
|
if grep -q "Missing Prefab" "$LOG_PATH"; then
|
|
echo ""
|
|
echo "ERROR: Build has missing prefab references (likely stale Library cache):"
|
|
grep "Missing Prefab" "$LOG_PATH"
|
|
exit 1
|
|
fi
|
|
|
|
if grep -q "Build asset version error" "$LOG_PATH"; then
|
|
echo ""
|
|
echo "ERROR: Build has asset version mismatches (likely stale Library cache):"
|
|
grep "Build asset version error" "$LOG_PATH" | head -5
|
|
exit 1
|
|
fi
|