Skip to content

ci(godot): consolidate toolchain steps into the load-godot-toolchain action - #356

Merged
joryirving merged 1 commit into
mainfrom
foreman/wl-misospace-windowstead-347/issue-347
Sep 2, 2026
Merged

ci(godot): consolidate toolchain steps into the load-godot-toolchain action#356
joryirving merged 1 commit into
mainfrom
foreman/wl-misospace-windowstead-347/issue-347

Conversation

@itsmiso-ai

Copy link
Copy Markdown
Contributor

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).

…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>

@its-saffron its-saffron Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 via if: conditions
  • A new output godot_binary is produced by the install step 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 explicit GITHUB_OUTPUT file writes (matching the prior behavior, just cleaner)
  • Platform branching (linux vs macos) 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 single uses: ./.github/actions/load-godot-toolchain call 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-test and macos-validation — driven by run_smoke: "true"
  • The "Run all test suites" block is gone from script-tests and macos-validation — driven by run_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
joryirving merged commit 1ff50bb into main Sep 2, 2026
8 checks passed
@joryirving
joryirving deleted the foreman/wl-misospace-windowstead-347/issue-347 branch September 2, 2026 02:40
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.

[P3] CI duplicate download/run-test blocks across 5 jobs in test.yml — consolidate into the toolchain composite action

2 participants