Skip to content

Attach Linux .deb/.rpm packages to GitHub Releases - #202

Merged
httpdss merged 1 commit into
mainfrom
cursor/linux-packages-release-upload-94fa
Oct 26, 2026
Merged

httpdss merged 1 commit into
mainfrom
cursor/linux-packages-release-upload-94fa

Conversation

@httpdss

@httpdss httpdss commented Oct 26, 2026

Copy link
Copy Markdown
Owner

Problem

build-linux-packages already builds .deb and .rpm files on each published release, but it only uploaded them as Actions artifacts (90-day retention). They never landed on the GitHub Release. Example: v3.3.1 run 40331035142.

Change

  • After the matrix builds, a new upload-release-assets job downloads every package artifact, writes SHA256SUMS, and runs gh release upload "$TAG" dist/*.deb dist/*.rpm dist/SHA256SUMS --clobber.
  • permissions: contents: write so GITHUB_TOKEN can attach assets. This works when the release is published by release-drafter / GITHUB_TOKEN (the release event already fires; uploading with GITHUB_TOKEN is enough).
  • Tag source is github.event.release.tag_name on release events.
  • workflow_dispatch now requires a tag input. The workflow checks out that tag, builds, and uploads to that release so past releases can be backfilled.
  • Existing Actions artifact uploads are unchanged.
  • Asset names already include version and architecture (structkit_3.3.1_amd64.deb, structkit-3.3.1-1.x86_64.rpm, etc.); the job fails if a produced file is missing version or arch.
  • Docs (docs/installation.md, plus the matching README / packaging notes) now say packages are attached to each GitHub release from 3.3.1 on, with curl + apt / dnf install examples using the real asset names.

v3.3.1 backfill

The packages from run 40331035142 were attached to v3.3.1 already (no need to wait for this merge):

  • structkit_3.3.1_amd64.deb
  • structkit_3.3.1_arm64.deb
  • structkit-3.3.1-1.x86_64.rpm
  • structkit-3.3.1-1.aarch64.rpm
  • SHA256SUMS

Validation

  • actionlint v1.7.12: clean for this workflow (the only repo finding is a pre-existing if: false in push-to-registry.yaml).
  • Local pre-commit (check-yaml, end-of-file-fixer, trailing-whitespace) passed on the changed files.
Open in Web Open in Cursor 

The build-linux-packages workflow already built .deb/.rpm files on
publish, but only uploaded Actions artifacts. Add a follow-up job that
downloads those packages, writes SHA256SUMS, and uploads them to the
triggering release with gh release upload.

workflow_dispatch now requires a tag so past releases can be rebuilt and
backfilled. Checkout uses that tag (or github.event.release.tag_name).
GITHUB_TOKEN with contents: write is enough when release-drafter publishes
the release. Docs now point at the release assets from 3.3.1 on.

Co-authored-by: Kenneth Belitzky <kenny@belitzky.com>
@httpdss
httpdss merged commit 0e13263 into main Oct 26, 2026
4 checks passed
@httpdss
httpdss deleted the cursor/linux-packages-release-upload-94fa branch October 26, 2026 13:44
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.

2 participants