Skip to content

joryirving/windowstead #79: Add macOS validation to pull-request CI - #80

Closed
itsmiso-ai wants to merge 2 commits into
mainfrom
fix/issue-79-macos-ci-validation
Closed

joryirving/windowstead #79: Add macOS validation to pull-request CI#80
itsmiso-ai wants to merge 2 commits into
mainfrom
fix/issue-79-macos-ci-validation

Conversation

@itsmiso-ai

Copy link
Copy Markdown
Contributor

Fixes #79. Add a macOS validation job to that runs on . The job downloads Godot 4.2.2 macOS binary, runs the headless smoke test to catch parser/runtime errors, and runs the script test suite. This complements the existing Linux jobs — the macOS job is lighter-weight than full release export but catches macOS-specific GDScript and engine regressions before release.

Add a macOS validation job to .github/workflows/test.yml that:
- Downloads Godot 4.2.2 macOS binary
- Runs headless smoke test to catch parser/runtime errors
- Runs script test suite to validate GDScript on macOS

This complements the existing Linux jobs without replacing them.
Lighter-weight than full release export; catches macOS-specific regressions.
@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

Review: #80 — Add macOS validation to pull-request CI

Summary

The PR adds a macos-validation job to .github/workflows/test.yml that downloads the Godot 4.2.2 macOS universal binary, runs a headless smoke test checking for script/runtime errors, and executes the script test suite. This directly addresses issue #79.

Change-by-Change Findings

  1. New env var GODOT_MACOS_URL (line 13)

    • Adds the macOS Godot 4.2.2 universal zip URL to the workflow environment block.
    • Confirmed: URL resolves successfully and matches the macOS binary used in .github/workflows/release.yml (line 26), ensuring version consistency across the repository.
  2. New macos-validation job (lines 86–134)

    • Runs on macos-latest, preserving the Linux job as the fast lane per issue guidance.
    • Download step: Uses curl to fetch the zip, unzip to extract, and chmod +x to make the binary executable — standard approach consistent with Linux job patterns in this repo.
    • Verify step: Runs Godot --version to confirm the binary is functional before proceeding.
    • Smoke test step: Runs headless for 15 seconds with --fixed-fps 60 --quit-after 300, then greps output for SCRIPT ERROR or ERROR: patterns. Failures cause non-zero exit, which will fail the job. This aligns with AGENTS.md noting "macOS runtime validation has also been important in this repo because GDScript warnings are treated as errors in practice."
    • Script tests step: Runs res://tests/test_runner.gd and fails on non-zero exit. Reports pass/fail counts.

Standards Compliance

  • Consistent versioning: Uses Godot 4.2.2 stable, matching GODOT_VERSION and all other workflow references.
  • Consistent URL pattern: GODOT_MACOS_URL follows the same naming convention as GODOT_LINUX_URL.
  • Mirrors existing patterns: Job structure mirrors the existing Linux smoke-test and tests jobs, using the same test scripts (test_runner.gd, test_e2e.gd).
  • Uses pinned actions: actions/checkout is pinned to v6 with full commit SHA (de0fac2e4500dabe0009e67214ff5f5447ce83dd).
  • Lighter than release workflow: The job validates only (no export templates, no packaging), matching the issue's "lighter-weight" requirement.
  • AGENTS.md alignment: Explicitly supports the noted importance of macOS runtime validation in this repo.

Linked Issue Fit (#79)

Acceptance Criterion Status
Pull requests run a macOS validation job in CI ✅ Job added to test.yml, runs on PR
macOS job catches project/parser/runtime script failures before release builds ✅ Smoke test checks SCRIPT ERROR/ERROR:, test_runner runs
Validation path is lighter-weight than the full release export workflow ✅ Only downloads editor, runs validation tests; no export templates or packaging
Linux PR validation remains intact ✅ Existing Linux jobs unchanged

Unknowns / Needs Verification

  • None: All URLs verified accessible; test script paths (res://tests/test_runner.gd, res://tests/test_e2e.gd) already exist in repo and are referenced by the existing Linux jobs.

Recommendation

Approve. The PR correctly adds macOS CI validation with appropriate coverage (smoke test + script tests), uses consistent versioning and patterns, and fully satisfies all four acceptance criteria from issue #79.

The existing macOS job used the x86_64-only binary which won't run
natively on macos-latest (Apple Silicon). Switch to the universal
binary for proper native execution on both Intel and ARM Macs.
@itsmiso-ai

Copy link
Copy Markdown
Contributor Author

Closing duplicate - multiple PRs for the same issue exist. A new PR will be created with proper duplicate detection.

@itsmiso-ai itsmiso-ai closed this Apr 24, 2026
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