Skip to content

ci(release): publish only the package job's artifacts - #434

Merged
devmobasa merged 1 commit into
mainfrom
ci/release-artifact-selection
Nov 3, 2026
Merged

devmobasa merged 1 commit into
mainfrom
ci/release-artifact-selection

Conversation

@devmobasa

Copy link
Copy Markdown
Owner

Summary

The release, package-repos, and aur jobs in build-packages.yml
download every artifact in the run. The package-repos job uploads a
wayscriber-<version>-repos bundle that holds re-signed copies of the RPMs
under the same file names. When the release job downloads after that upload,
for example on a re-run, files: dist/**/* picks up both copies. Because
action-gh-release overwrites same-named assets by default, the published RPM
can then be the re-signed copy, which no longer matches checksums.txt.

Releases have avoided this so far only because of timing. In the v0.9.28 run,
release finished at 10:07:27 and the repository bundle was uploaded close to
10:08:08.

Changes

  • All three download steps select only the package job's artifacts with
    pattern: wayscriber*-<version>-{tar,deb,rpm,manifest}.
  • The release step uploads an explicit list (dist/*.tar.gz, dist/*.deb,
    dist/*.rpm, dist/checksums.txt, dist/manifest.json) with
    fail_on_unmatched_files: true. This list matches the v0.9.28 release
    assets.

Validation

  • Checked the pattern with minimatch, which download-artifact uses. It
    matches the seven package artifacts and excludes
    wayscriber-<version>-repos.
  • Checked pattern and merge-multiple against the download-artifact@v8
    action metadata, and files and fail_on_unmatched_files against
    action-gh-release@v3.
  • The workflow parses, and git diff --check is clean.

This workflow runs only on tags, so the next release is its first real run.

The release, repository, and AUR jobs downloaded every artifact in the
run. The repository job uploads a bundle that holds re-signed copies of
the RPMs under the same file names. A release job that runs after that
upload, such as a re-run, would publish those copies over the originals,
because action-gh-release overwrites same-named assets by default, and
they would no longer match checksums.txt. Releases have avoided this only
because the release job finished before the repository bundle existed.

Download only the package job's tar, deb, rpm, and manifest artifacts,
and upload an explicit list of release files that fails when one is
missing.
@devmobasa
devmobasa merged commit 094d14a into main Nov 3, 2026
5 checks passed
@devmobasa
devmobasa deleted the ci/release-artifact-selection branch November 4, 2026 06:14
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