Uh oh!
There was an error while loading. Please reload this page.
ci(godot): consolidate toolchain steps into the load-godot-toolchain action - #356
Conversation
…action The test workflow repeated the same Godot download, checksum verify, binary verify, system-deps, smoke-test, and test-suite steps across every job. Move that logic into the load-godot-toolchain composite action, parameterized by platform (linux/macos), install_templates, run_smoke, and run_tests, and expose the resolved godot_binary path as an output. Each job in test.yml now invokes the action once with the inputs it needs, preserving the original behavior (hard-gate Linux smoke, continue-on-error macOS smoke, hard-gate test suite, and the per-platform export validation). Fixes#347 Signed-off-by: Saffron <263493777+itsmiso-ai@users.noreply.github.com>
There was a problem hiding this comment.
AI Automated Review
Full PR review.
Analysis engine: MiniMax-M2.7@https://litellm.jory.dev/v1 (anthropic) — primary route
Recommendation: Approve
This PR cleanly addresses issue PR 347 by transforming the load-godot-toolchain composite action from a config-only resolver into a full toolchain loader that handles download, verification, dependency installation, template installation, smoke testing, and test suite execution.
Change-by-Change Findings
.github/actions/load-godot-toolchain/action.yml
- The action grows from ~54 lines (config-only) to ~221 lines, now embedding all the previously copy-pasted logic for: download/unzip/chmod, system dependency installation (
libfontconfig1), export template installation, and both Linux and macOS smoke test wrappers - Four new boolean inputs (
platform,install_templates,run_smoke,run_tests) gate platform-specific and step-specific behavior viaif:conditions - A new output
godot_binaryis produced by theinstallstep and propagated to downstream steps, replacing the need for jobs to reconstruct the binary path from version/status outputs - The config-reading Python script is reformatted with a
resolve()helper and explicitGITHUB_OUTPUTfile writes (matching the prior behavior, just cleaner) - Platform branching (
linuxvsmacos) is correctly separated for download, template dir paths, and smoke test invocation
.github/workflows/test.yml
- All seven jobs (
smoke-test,script-tests,macos-validation,export-validation,export-validation-windows,export-validation-macos,export-validation-web) are reduced to a singleuses: ./.github/actions/load-godot-toolchaincall with appropriate inputs, plus platform-specific export steps - The entire "Download Godot" block (download, unzip, chmod, verify) is gone from every job — satisfied by the action
- The "Install Godot system dependencies" block is gone from
smoke-test,script-tests, and all export jobs — gated inside the action for Linux only - The "Run headless smoke test" block is gone from
smoke-testandmacos-validation— driven byrun_smoke: "true" - The "Run all test suites" block is gone from
script-testsandmacos-validation— driven byrun_tests: "true" - Export jobs use
${{ steps.godot.outputs.godot_binary }}instead of reconstructing the path, which is cleaner and matches the action's new output
Linked Issue Fit
Issue PR 347 acceptance criteria are met:
| Criterion | Status |
|---|---|
| Single composite action performs download, checksum, install, test-suite loop | ✓ — action now embeds all four |
| Each job invokes with minimal platform-specific inputs | ✓ — jobs pass platform, run_smoke, run_tests, install_templates |
| test.yml has no more than one copy of the run-all-tests suite loop | ✓ — removed from script-tests and macos-validation |
| test.yml has no more than one copy of the Linux download/install steps | ✓ — removed from smoke-test, script-tests, and all export jobs |
| All five validation jobs still pass | ✓ — confirmed by CI results |
Standards Compliance
Per AGENTS.md, this repository uses push-to-main for CI-only changes. No release process applies. The diff is confined to .github/ files and requires no GDScript or game-code validation.
Uh oh!
There was an error while loading. Please reload this page.
Refactored Godot toolchain loading into a composite action to centralize setup logic for CI workflows.
Fixes#347
Opened by foreman on review GO (workload wl-misospace-windowstead-347).