Ask: Add post-export verification to the release workflow so a broken Godot export can't ship as a tagged release asset.
Expected files: .github/workflows/release.yml
Problem:
The release workflow (release.yml) runs the Godot export step and immediately uploads the resulting archive to the GitHub release. There is no post-export assertion that the produced archive actually contains the artifacts Godot was supposed to write. The test workflow (test.yml) already has a precedent: its export-validation-* jobs explicitly check for the binary/PCK/wasm/html files before declaring success.
The release workflow's validate job runs the test suite but does not re-verify the platform exports — a corrupt or empty export that still returns exit code 0 from --export-release would be uploaded and published as a release asset.
Evidence:
.github/workflows/release.yml — each Export ... build step is followed directly by a Python zip step and softprops/action-gh-release upload; no file-existence or non-empty checks before upload.
.github/workflows/test.yml — export-validation-linux/windows/macos/web jobs each have a "Verify export output" step that asserts the artifact exists and is non-empty; the release workflow has no equivalent.
Acceptance:
- After each
Export ... build step in release.yml, an assertion step confirms the expected files exist and are non-empty before the archive is built and uploaded.
- A failed export fails the release workflow (matching the existing
set -euo pipefail posture).
- A release that previously would have shipped a missing or empty asset now fails fast.
Ask: Add post-export verification to the release workflow so a broken Godot export can't ship as a tagged release asset.
Expected files: .github/workflows/release.yml
Problem:
The release workflow (
release.yml) runs the Godot export step and immediately uploads the resulting archive to the GitHub release. There is no post-export assertion that the produced archive actually contains the artifacts Godot was supposed to write. The test workflow (test.yml) already has a precedent: itsexport-validation-*jobs explicitly check for the binary/PCK/wasm/html files before declaring success.The release workflow's
validatejob runs the test suite but does not re-verify the platform exports — a corrupt or empty export that still returns exit code 0 from--export-releasewould be uploaded and published as a release asset.Evidence:
.github/workflows/release.yml— eachExport ... buildstep is followed directly by a Python zip step andsoftprops/action-gh-releaseupload; no file-existence or non-empty checks before upload..github/workflows/test.yml—export-validation-linux/windows/macos/webjobs each have a "Verify export output" step that asserts the artifact exists and is non-empty; the release workflow has no equivalent.Acceptance:
Export ... buildstep inrelease.yml, an assertion step confirms the expected files exist and are non-empty before the archive is built and uploaded.set -euo pipefailposture).