Skip to content

Add GitHub Release binary asset publishing#69

Merged
mbe24 merged 2 commits intomainfrom
copilot/add-publish-github-release-assets
Mar 12, 2026
Merged

Add GitHub Release binary asset publishing#69
mbe24 merged 2 commits intomainfrom
copilot/add-publish-github-release-assets

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 12, 2026

GitHub Releases were missing downloadable binary archives — users had no first-class binary artifact channel without going through crates.io or npm.

Changes

  • New publish-github-release-assets job in .github/workflows/release.yml
    • Gated on both publish-crates and publish-npm succeeding; skipped if either fails
    • Downloads all five build matrix artifacts, packages them as archives, and uploads to the GitHub Release
    • permissions: contents: write scoped to this job only

Assets uploaded per release

File Target
99problems-<ver>-x86_64-pc-windows-msvc.zip Windows x64
99problems-<ver>-x86_64-unknown-linux-gnu.tar.gz Linux x64
99problems-<ver>-x86_64-apple-darwin.tar.gz macOS x64
99problems-<ver>-aarch64-apple-darwin.tar.gz macOS arm64
99problems-<ver>-aarch64-unknown-linux-gnu.tar.gz Linux arm64
SHA256SUMS.txt Checksum manifest

Uses gh release upload --clobber so workflow reruns replace assets cleanly without manual cleanup.

Original prompt

This section details on the original issue you should resolve

<issue_title>[Feature] Publish GitHub release binary assets</issue_title>
<issue_description>### Problem

Release builds already produce platform binaries and publish crates/npm packages, but the GitHub Release itself does not provide downloadable binary assets.

Users who want direct download from GitHub Releases cannot use a first-class binary artifact channel.

Design

Add a final release-assets job that:

  1. runs only after publish-crates and publish-npm succeed,
  2. downloads existing build artifacts,
  3. packages per-target archives,
  4. uploads archives + checksums to the GitHub Release for the tag.

Scope

  • Extend .github/workflows/release.yml with a gated publish-github-release-assets job.
  • Require both registry publish jobs to succeed before release asset upload.
  • Upload these assets:
    • Windows zip archive
    • Linux/macOS tar.gz archives
    • SHA256SUMS.txt

Boundary

  • No changes to provider/source code.
  • No change to build target matrix in this issue.
  • No code signing/notarization in this issue.

Acceptance Criteria

  • On v* release tag workflow:
    • crates.io publish succeeds,
    • npm publish succeeds,
    • then (and only then) release assets are attached to the GitHub Release.
  • If either registry publish fails, the release-assets job does not run.
  • Release contains archives for all currently supported targets and a checksum manifest.
  • Workflow rerun keeps assets consistent and usable.

Context

This improves release usability for direct binary consumers while preserving strict release ordering and existing registry-first publication policy.

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Co-authored-by: mbe24 <7420624+mbe24@users.noreply.github.com>
Copilot AI changed the title [WIP] [Feature] Add publish GitHub release binary assets job Add GitHub Release binary asset publishing Mar 12, 2026
@mbe24 mbe24 marked this pull request as ready for review March 12, 2026 13:15
@mbe24 mbe24 merged commit f2e6dc9 into main Mar 12, 2026
6 checks passed
@mbe24 mbe24 deleted the copilot/add-publish-github-release-assets branch March 12, 2026 13:15
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.

[Feature] Publish GitHub release binary assets

2 participants