Skip to content

[P3] release.yml export jobs upload artifacts without post-export existence checks #366

Description

@itsmiso-ai

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    auditAudit, review, or investigation work.priority/p3Low priority.status/readyReady for Dispatch worker pickup.type/choreChore or maintenance.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions