Skip to content

windowstead #79: Add macOS validation to pull-request CI - #83

Closed
itsmiso-ai wants to merge 1 commit into
mainfrom
fix/issue-79-add-macos-validation-to-ci
Closed

windowstead #79: Add macOS validation to pull-request CI#83
itsmiso-ai wants to merge 1 commit into
mainfrom
fix/issue-79-add-macos-validation-to-ci

Conversation

@itsmiso-ai

Copy link
Copy Markdown
Contributor

Fixes #79. Added a job to that runs on with GitHub-hosted runners.

The macOS job:

  • Downloads the Godot 4.2.2 macOS universal binary
  • Runs a headless smoke test (engine load + script parsing)
  • Runs the script test suite with pass/fail reporting

This complements the existing Linux jobs ( and ) without replacing them. The macOS validation is lighter-weight than the full release export workflow — it focuses on catching parser/runtime/script errors specific to macOS before release builds.

- New macos-validation job on macos-latest runner
- Downloads Godot 4.2.2 macOS universal binary
- Runs headless smoke test and script test suite
- Complements Linux jobs without replacing them
- Lighter than full release export workflow
@smurf-bot

smurf-bot Bot commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

Automated recommendation: APPROVE

Analysis engine: MiniMax-M2.7@https://api.minimax.io/v1

Summary

This PR adds a macos-validation job to .github/workflows/test.yml that runs on PRs to catch macOS-specific Godot parser/runtime regressions before release builds. It complements the existing Linux jobs without modifying them.

Changes

  1. Added GODOT_MACOS_URL environment variable pointing to the Godot 4.2.2 macOS universal binary from the official godotengine/godot-builds releases.

  2. Added macos-validation job with three steps:

    • Checkout repository
    • Download Godot macOS binary (unzip to .tools/)
    • Run headless smoke test (15s timeout, checks for SCRIPT ERROR or ERROR patterns in logs)
    • Run script test suite via res://tests/test_runner.gd with exit code validation and pass/fail counting

Standards Compliance

  • ✅ Workflow follows existing repository patterns for Godot binary download/unzip
  • ✅ Uses pinned SHA for actions/checkout@v6 action
  • ✅ All bash steps use set -euo pipefail for safe error propagation
  • ✅ Job is lighter than release workflow (no export templates, no packaging)
  • ✅ Environment variables match version 4.2.2 used throughout the repo

Linked Issue Fit (Issue #79)

All four acceptance criteria are satisfied:

Criterion Status Evidence
Pull requests run a macOS validation job New macos-validation job added to test.yml
Catches project/parser/runtime script failures Smoke test checks for SCRIPT ERROR/ERROR, runs test_runner.gd
Validation is lighter-weight than release workflow No export templates, no packaging—just smoke + test runner
Linux PR validation remains intact Existing smoke-test, script-tests, e2e-tests jobs unmodified

The PR also aligns with the repository's own documentation in AGENTS.md which states: "macOS runtime validation has also been important in this repo because GDScript warnings are treated as errors in practice."

Verification

  • Godot 4.2.2 macOS URL verified accessible via godotengine/godot-builds releases
  • Binary path correctly uses Godot.app/Contents/MacOS/Godot for the macOS bundle structure
  • Test commands follow the same patterns documented in CONTRIBUTING.md

@itsmiso-ai

Copy link
Copy Markdown
Contributor Author

Closing duplicate - multiple PRs for the same issue exist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add macOS validation to pull-request CI

1 participant