diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8693f84..6a80197 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,6 +10,7 @@ env: GODOT_VERSION: 4.2.2 GODOT_STATUS: stable GODOT_LINUX_URL: https://github.com/godotengine/godot-builds/releases/download/4.2.2-stable/Godot_v4.2.2-stable_linux.x86_64.zip + GODOT_MACOS_URL: https://github.com/godotengine/godot-builds/releases/download/4.2.2-stable/Godot_v4.2.2-stable_macos.universal.zip jobs: smoke-test: @@ -82,3 +83,35 @@ jobs: set -euo pipefail ./.tools/Godot_v4.2.2-stable_linux.x86_64 --headless --path . --script res://tests/test_e2e.gd > e2e-tests.log 2>&1 cat e2e-tests.log + + macos-validation: + name: macOS validation + runs-on: macos-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + + - name: Download Godot + shell: bash + run: | + set -euo pipefail + mkdir -p .tools + curl -fsSL "$GODOT_MACOS_URL" -o /tmp/godot_macos.zip + unzip -oq /tmp/godot_macos.zip -d .tools/ + chmod +x .tools/Godot_v4.2.2-stable_macos.universal/Godot.app/Contents/MacOS/Godot + + - name: Verify Godot binary + shell: bash + run: | + set -euo pipefail + .tools/Godot_v4.2.2-stable_macos.universal/Godot.app/Contents/MacOS/Godot --version + + - name: Run headless smoke test + shell: bash + run: | + set -euo pipefail + timeout 15 .tools/Godot_v4.2.2-stable_macos.universal/Godot.app/Contents/MacOS/Godot --headless --path . --fixed-fps 60 --quit-after 300 > smoke.log 2>&1 + if grep -E "SCRIPT ERROR|ERROR:" smoke.log; then + echo "Smoke test logged an engine/script error" >&2 + cat smoke.log >&2 + exit 1 + fi