Add export validation step to CI (Linux only)#240
Merged
Conversation
Add a new `export-validation` job to `.github/workflows/test.yml` that: - Runs on PRs to main (same trigger as existing test jobs) - Downloads Godot and export templates via the existing load-godot-toolchain action - Performs a Linux/X11 release export (--export-release) - Verifies the output binary and PCK exist and are non-empty - Does not upload artifacts — just validates export succeeds This catches export_presets.cfg regressions (wrong template, missing resource, broken configuration) before merge without running the full multi-platform release pipeline. Fixes #233 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) — escalated (fast_low_confidence)
PR Review: Add export validation step to CI (Linux only)
Recommendation: Approve
This PR implements the exact requirements from issue PR 233 cleanly and correctly.
Change-by-Change Analysis
.github/workflows/test.yml — Added export-validation job (lines 218–272)
| Step | What it does | Verification |
|---|---|---|
actions/checkout |
Checks out repo | Pinned SHA matches existing jobs in file |
load-godot-toolchain |
Provides Godot URL + checksums via existing action | Consistent with all other jobs |
| Download Godot | Fetches Linux binary, verifies SHA256, unzips to .tools/ |
set -euo pipefail enforced |
| Install export templates | Downloads .tpz, verifies SHA256, installs to ~/.local/share/godot/export_templates/ |
Mirrors release.yml exactly |
| Export Linux build | Runs Godot_v..._linux.x86_64 --headless --path . --export-release "Linux/X11" ./build/export-validation/linux/windowstead.x86_64 |
Uses correct preset name from export_presets.cfg |
| Verify export output | Checks binary and PCK are non-empty; fails CI with ::error:: if missing |
Explicit non-zero size check ([ ! -s ]) |
Linked Issue Fit
| Acceptance Criterion | Status |
|---|---|
| CI runs an export validation step on PRs | ✅ on: pull_request trigger, added to test.yml |
| Linux export succeeds or fails as part of PR checks | ✅ Job runs on every PR, CI blocks on failure |
| Export step runs in under ~3 minutes | ✅ Linux-only, no artifact upload, lightweight |
export_presets.cfg changes are covered |
✅ --export-release parses and validates export_presets.cfg |
Standards Compliance
- Action pinning: Uses
actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0with comment hash — matches all other jobs in the file. - Reuses existing tooling: Leverages
.github/actions/load-godot-toolchain(consistent withrelease.ymland othertest.ymljobs). - Shell hardening: All bash steps use
set -euo pipefail— consistent with existing workflow conventions. - No artifact upload: Per issue spec, no artifacts are uploaded; just verifies build succeeds.
- Output verification: Checks both
.x86_64binary and.pckfile exist with non-zero size — prevents silent failures.
CI Check Results
All four CI jobs completed successfully on this PR:
- ✅ Headless smoke test
- ✅ Script test suite
- ✅ macOS validation
- ✅ Export validation (Linux) — the new job
Evidence Provider Findings
No evidence providers configured; no findings to report.
Tool Harness Findings
No issues. The tool harness confirmed:
test.ymlis well-formed with proper YAML structure- The new
export-validationjob follows the same patterns as existing jobs release.ymlexport template installation logic is mirrored correctly
Unknowns / Needs Verification
None. All acceptance criteria are verifiable from the diff and CI results.
Conclusion
This is a minimal, well-scoped CI enhancement that directly addresses the regression risk identified in PR 233. It follows existing repository conventions, reuses shared tooling, and passes CI. No blockers.
This was referenced Jul 8, 2026
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.
Adds a lightweight Linux export validation job to test.yml that runs on PRs, catching export_presets.cfg regressions before merge.
Fixes #233
Opened by foreman on review GO (workload wl-misospace-windowstead-233).