Replace abandoned rust-build action with taiki-e/upload-rust-binary-action#495
Replace abandoned rust-build action with taiki-e/upload-rust-binary-action#495
Conversation
…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).
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThe GitHub Actions release workflow is updated to execute per-target on matrix-defined operating systems instead of a fixed Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~18 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
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.5internally usesrust:1.76.0-alpine3.19(last meaningful update: Feb 2024). Since then, several dependency upgrades landed onmasterthat require a newer Rust toolchain — notablyreqwest0.13,thiserror2.x, andcolored3.x.Multiple attempts were made at the time to work around the issue (pinning Rust 1.85.0 via
dtolnay/rust-toolchain, usingstable), butrust-builddoesn'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.5withtaiki-e/upload-rust-binary-action@v1, which is actively maintained (latest: v1.29.1).Specific changes:
rust-build/rust-build.action@v1.4.5→taiki-e/upload-rust-binary-action@v1actions/checkout@master→actions/checkout@v4ubuntu-latest, each target now runs on the appropriate OS:x86_64-pc-windows-gnu→ubuntu-latest(cross-compiled via cross)x86_64-unknown-linux-musl→ubuntu-latestx86_64-apple-darwin→macos-latest(was previously attempted fromubuntu-latest, which silently failed — no macOS binary was ever uploaded in past releases)checksum: sha256option (previously relied onrust-build's built-in checksum generation)Asset naming
The new action uses a slightly different naming convention for release assets:
bitcoinvert_v0.1.6_x86_64-unknown-linux-musl.tar.gzbitcoinvert-x86_64-unknown-linux-musl.tar.gzThe version is no longer embedded in the filename (it's already in the release/tag). Archive formats remain the same:
.tar.gzfor Linux/macOS,.zipfor Windows.Test plan
Cargo.tomlv0.1.7to trigger the workflow.sha256checksum files are present for each binarySummary by CodeRabbit