mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-28 22:35:42 +00:00
Add dedicated self-hosted runners for parallel Unity builds: - unity-mac: Mac Unity builds and deployment - unity-windows: Windows Unity builds (cross-compiled on Mac) - notarize: Notarization waiting (lightweight, doesn't block builds) Split mac_build.yml into 3 jobs: 1. build-and-sign (unity-mac): Build, sign, submit to Apple 2. wait-notarization (notarize): Wait for Apple, staple ticket 3. deploy (unity-mac): Deploy notarized app This allows: - Mac and Windows Unity builds to run in parallel - Notarization waiting doesn't block other builds - All runners share the same Mac Mini hardware New scripts: - notarize_submit.sh: Submit without waiting, output submission ID - notarize_wait.sh: Wait for submission ID, staple ticket 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
57 lines
1.6 KiB
Bash
Executable File
57 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Submit a macOS .app bundle to Apple for notarization (no waiting)
|
|
# Usage: notarize_submit.sh <app_path>
|
|
# Outputs: submission_id=<id> to stdout (for GitHub Actions)
|
|
#
|
|
# Environment variables (required):
|
|
# APPLE_ID - Apple Developer account email
|
|
# APP_SPECIFIC_PASSWORD - App-specific password for notarytool
|
|
# TEAM_ID - Apple Developer Team ID
|
|
|
|
set -euo pipefail
|
|
|
|
APP_PATH="$1"
|
|
|
|
if [ ! -d "$APP_PATH" ]; then
|
|
echo "ERROR: App not found at $APP_PATH" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "${APPLE_ID:-}" ] || [ -z "${APP_SPECIFIC_PASSWORD:-}" ] || [ -z "${TEAM_ID:-}" ]; then
|
|
echo "ERROR: Required environment variables not set" >&2
|
|
echo " APPLE_ID: ${APPLE_ID:-<not set>}" >&2
|
|
echo " APP_SPECIFIC_PASSWORD: ${APP_SPECIFIC_PASSWORD:+<set>}" >&2
|
|
echo " TEAM_ID: ${TEAM_ID:-<not set>}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Create ZIP for notarization submission
|
|
ZIP_PATH="${APP_PATH%.app}.zip"
|
|
echo "=== Creating ZIP for notarization: $ZIP_PATH ===" >&2
|
|
ditto -c -k --keepParent "$APP_PATH" "$ZIP_PATH"
|
|
|
|
echo "=== Submitting to Apple for notarization ===" >&2
|
|
SUBMIT_OUTPUT=$(xcrun notarytool submit "$ZIP_PATH" \
|
|
--apple-id "$APPLE_ID" \
|
|
--password "$APP_SPECIFIC_PASSWORD" \
|
|
--team-id "$TEAM_ID" 2>&1)
|
|
|
|
echo "$SUBMIT_OUTPUT" >&2
|
|
|
|
# Extract submission ID
|
|
SUBMISSION_ID=$(echo "$SUBMIT_OUTPUT" | grep "id:" | head -1 | awk '{print $2}')
|
|
|
|
if [ -z "$SUBMISSION_ID" ]; then
|
|
echo "ERROR: Failed to get submission ID" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Clean up the zip
|
|
rm "$ZIP_PATH"
|
|
|
|
echo "Submission ID: $SUBMISSION_ID" >&2
|
|
|
|
# Output for GitHub Actions
|
|
echo "submission_id=$SUBMISSION_ID"
|