ci(godot): consolidate toolchain steps into the load-godot-toolchain action - #356
Merged
Merged
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.
joryirving
deleted the
foreman/wl-misospace-windowstead-347/issue-347
branch
September 2, 2026 02:40
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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).