Skip to content

fix(ci): name the CI native checksum manifest exactly SHA256SUMS - #121

Merged
abrichr merged 1 commit into
mainfrom
fix/desktop-ci-checksum-dir
Aug 19, 2026
Merged

fix(ci): name the CI native checksum manifest exactly SHA256SUMS#121
abrichr merged 1 commit into
mainfrom
fix/desktop-ci-checksum-dir

Conversation

@abrichr

@abrichr abrichr commented Aug 19, 2026

Copy link
Copy Markdown
Member

What

Write and verify dist/native/SHA256SUMS in the CI native installer jobs.

Why

All four native installer jobs failed on main after #115:

error: SHA256SUMS must be inside the release asset directory
##[error]Process completed with exit code 2.

#115 hardened verify_checksums to accept only a manifest named exactly
SHA256SUMS:

if manifest.parent.resolve() != directory.resolve() or manifest.name != "SHA256SUMS":
    raise ValueError("SHA256SUMS must be inside the release asset directory")

build.yml still passed SHA256SUMS-${{ matrix.platform }}-${{ matrix.architecture }}.
The native installer matrix is skipped on pull requests and runs on main
pushes (Native installer (${{ matrix.label }}) reports skipping on every
PR), so the exact-head checks on #115 could not catch it.

How

Use the plain name. Each matrix job owns its own dist/native directory and
uploads under a distinct artifact name (native-${platform}-${architecture}),
and nothing consumed the per-platform manifest name, so there is no collision.
The hardened check is unchanged — the workflow is corrected to match it.

New test_every_workflow_checksum_manifest_uses_the_exact_name reads every
workflow file and refuses a --output or --manifest value that mentions
SHA256SUMS without ending in it. It fails against the previous build.yml, so
the contract cannot drift silently again.

Tests

  • Full suite: 1028 passed.
  • ruff check engine/ tests/ scripts/: passed.
  • The native installer matrix itself only runs on main; the post-merge run is
    the proof.

🤖 Generated with Claude Code

#115 hardened `verify_checksums` to accept only a manifest named exactly
`SHA256SUMS`, but the CI build lane still wrote
`SHA256SUMS-${platform}-${architecture}`. All four native installer jobs on
`main` then failed:

    error: SHA256SUMS must be inside the release asset directory

The native installer matrix is skipped on pull requests and runs on `main`
pushes, so the exact-head checks on #115 could not see it.

Write and verify `dist/native/SHA256SUMS`. Each matrix job owns its own
`dist/native` directory and uploads under a distinct artifact name, so the
plain name is unambiguous and nothing consumed the per-platform name. The
hardened check is unchanged.

New `test_every_workflow_checksum_manifest_uses_the_exact_name` reads every
workflow and refuses a `--output` or `--manifest` value that mentions
SHA256SUMS without ending in it, so this cannot regress silently again. It
fails against the previous build.yml.

Tests: full suite 1028 passed. Ruff passed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@abrichr
abrichr merged commit acfca3f into main Aug 19, 2026
17 checks passed
@abrichr
abrichr deleted the fix/desktop-ci-checksum-dir branch August 19, 2026 23:28
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.

1 participant