Skip to content

Replace abandoned rust-build action with taiki-e/upload-rust-binary-action#495

Merged
gcomte merged 1 commit intomasterfrom
fix/release-workflow
Mar 30, 2026
Merged

Replace abandoned rust-build action with taiki-e/upload-rust-binary-action#495
gcomte merged 1 commit intomasterfrom
fix/release-workflow

Conversation

@gcomte
Copy link
Copy Markdown
Owner

@gcomte gcomte commented Mar 30, 2026

Context

On March 9, 2025, the v0.1.7 release attempt failed on all 3 targets (see run #13749467244). The root cause is that rust-build/rust-build.action@v1.4.5 internally uses rust:1.76.0-alpine3.19 (last meaningful update: Feb 2024). Since then, several dependency upgrades landed on master that require a newer Rust toolchain — notably reqwest 0.13, thiserror 2.x, and colored 3.x.

Multiple attempts were made at the time to work around the issue (pinning Rust 1.85.0 via dtolnay/rust-toolchain, using stable), but rust-build doesn't honor an externally installed toolchain. The version bump was reverted and the release was postponed.

Changes

Replace rust-build/rust-build.action@v1.4.5 with taiki-e/upload-rust-binary-action@v1, which is actively maintained (latest: v1.29.1).

Specific changes:

  • Build action: rust-build/rust-build.action@v1.4.5taiki-e/upload-rust-binary-action@v1
  • Checkout action: actions/checkout@masteractions/checkout@v4
  • Runner OS: Instead of running all targets on ubuntu-latest, each target now runs on the appropriate OS:
    • x86_64-pc-windows-gnuubuntu-latest (cross-compiled via cross)
    • x86_64-unknown-linux-muslubuntu-latest
    • x86_64-apple-darwinmacos-latest (was previously attempted from ubuntu-latest, which silently failed — no macOS binary was ever uploaded in past releases)
  • Checksums: SHA256 checksums are now generated via the checksum: sha256 option (previously relied on rust-build's built-in checksum generation)

Asset naming

The new action uses a slightly different naming convention for release assets:

  • Before: bitcoinvert_v0.1.6_x86_64-unknown-linux-musl.tar.gz
  • After: bitcoinvert-x86_64-unknown-linux-musl.tar.gz

The version is no longer embedded in the filename (it's already in the release/tag). Archive formats remain the same: .tar.gz for Linux/macOS, .zip for Windows.

Test plan

  • Merge this PR
  • Bump version to 0.1.7 in Cargo.toml
  • Create a GitHub release tagged v0.1.7 to trigger the workflow
  • Verify binaries are uploaded for all 3 targets (Linux, Windows, macOS — new!)
  • Verify .sha256 checksum files are present for each binary

Summary by CodeRabbit

  • Chores
    • Updated release workflow infrastructure with improved multi-platform build configuration and dependencies.

…ction

rust-build/rust-build.action@v1.4.5 uses rust:1.76.0-alpine internally
and hasn't been updated since Feb 2024. This caused all v0.1.7 release
builds to fail (reqwest 0.13, thiserror 2.x need newer Rust).

Switch to taiki-e/upload-rust-binary-action which is actively maintained.
Also use proper OS runners per target (macOS runner for darwin), so macOS
binaries will now actually be built (they silently failed before).
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 30, 2026

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

The GitHub Actions release workflow is updated to execute per-target on matrix-defined operating systems instead of a fixed ubuntu-latest. The actions/checkout action is upgraded to v4, and the Rust build step is replaced with taiki-e/upload-rust-binary-action configured to upload the bitcoinvert binary.

Changes

Cohort / File(s) Summary
Release Workflow
.github/workflows/release.yml
Updated to use matrix-based OS execution for per-target builds. Upgraded checkout action to v4. Replaced rust-build.action with taiki-e/upload-rust-binary-action@v1, specifying bitcoinvert binary and SHA256 checksum configuration.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~18 minutes

Poem

🐰 Workflows dance on native ground,
No longer tied to Linux's sound,
Windows, Mac, and Linux three,
Build in harmony, wild and free!
The binary hops from shelf to shelf,
With checksums signing off itself. 🚀

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the primary change: replacing the rust-build action with taiki-e/upload-rust-binary-action, which is the core objective of the PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/release-workflow

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gcomte gcomte merged commit 6355ef2 into master Mar 30, 2026
6 of 7 checks passed
@gcomte gcomte deleted the fix/release-workflow branch March 30, 2026 05:51
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