43 lines
1.1 KiB
Bash
Executable File
43 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
|
|
|
cd "$ROOT_DIR"
|
|
|
|
if ! ./scripts/atlas/ui-automation-preflight.sh >/dev/null; then
|
|
echo "Skipping native UI automation: Accessibility / automation permissions are not ready."
|
|
exit 0
|
|
fi
|
|
|
|
run_once() {
|
|
pkill -f 'Atlas for Mac.app/Contents/MacOS/Atlas for Mac' >/dev/null 2>&1 || true
|
|
pkill -f 'AtlasAppUITests-Runner|XCTRunner|xcodebuild test -project Atlas.xcodeproj -scheme AtlasApp' >/dev/null 2>&1 || true
|
|
sleep 2
|
|
|
|
xcodegen generate >/dev/null
|
|
xcodebuild test \
|
|
-project Atlas.xcodeproj \
|
|
-scheme AtlasApp \
|
|
-destination 'platform=macOS' \
|
|
-only-testing:AtlasAppUITests
|
|
}
|
|
|
|
LOG_FILE="$(mktemp -t atlas-ui-automation.XXXXXX.log)"
|
|
trap 'rm -f "$LOG_FILE"' EXIT
|
|
|
|
for attempt in 1 2; do
|
|
echo "UI automation attempt $attempt/2"
|
|
if run_once 2>&1 | tee "$LOG_FILE"; then
|
|
exit 0
|
|
fi
|
|
|
|
if grep -q 'Timed out while enabling automation mode' "$LOG_FILE" && [[ "$attempt" -lt 2 ]]; then
|
|
echo "UI automation timed out while enabling automation mode; retrying after cleanup..."
|
|
sleep 3
|
|
continue
|
|
fi
|
|
|
|
exit 1
|
|
done
|