Skip to content

ci: direct download tools with SHA256 verification - #5

Merged
butterflysky merged 5 commits into
mainfrom
fix/ci-direct-download-tools
Mar 19, 2026
Merged

butterflysky merged 5 commits into
mainfrom
fix/ci-direct-download-tools

Conversation

@butterflysky-ai

Copy link
Copy Markdown
Contributor

Summary

  • Replace taiki-e/install-action + cargo-binstall with direct curl downloads of cargo-nextest and cargo-audit from their GitHub releases
  • Each archive is verified against a pinned SHA256 checksum before extraction
  • Eliminates install-action and cargo-binstall from the CI supply chain entirely

Trust chain: GitHub release artifact → SHA256 verify → extract to PATH.

Ports the same approach from butterflyskies/pali#21.

Tool versions pinned

Tool Version Platform
cargo-nextest 0.9.131 x86_64-unknown-linux-gnu
cargo-audit 0.22.1 x86_64-unknown-linux-musl

Test plan

  • CI passes with direct downloads
  • SHA256 verification catches corrupted archives

🤖 Generated with Claude Code

butterflysky-ai and others added 5 commits March 18, 2026 15:27
Replace install-action + cargo-binstall with direct downloads of
cargo-nextest and cargo-audit from their GitHub releases. Each archive
is verified against a pinned SHA256 checksum before extraction.

Eliminates install-action and cargo-binstall from the CI supply chain.
Trust chain: GitHub release artifact → SHA256 verify → extract to PATH.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update release.yml template with:
- Shared ci-gate job that waits for CI before publishing
- publish-binaries job template using upload-rust-binary-action
- Quiet gh run watch (stdout suppressed)
- All commented out as TODOs for project customization

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add --strip-components=1 to cargo-audit tar extraction. The release
  tarball has a nested directory structure, so without this flag the
  binary lands in a subdirectory instead of on PATH.

- Change cancel-in-progress to only cancel PR runs. Pushes to main
  must run to completion or release.yml's ci-gate will fail to find
  a passing CI run for the release commit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add --event=push to ci-gate gh run list to avoid matching PR runs
- Add fail-fast: false to publish-binaries matrix template

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Upgrade action to main@8bb7a2ed (release-please 17.3.0) for
  force-tag-creation support
- Add draft: true and force-tag-creation: true to config
- Add issues: write permission for label operations
- Add publish-release job template (undrafts after asset uploads)
- Update TODO comments to explain the draft release flow

The draft flow is required for repos with immutable release rules:
draft release → upload assets → publish.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@butterflysky
butterflysky merged commit 06f154b into main Mar 19, 2026
3 checks passed
@butterflysky
butterflysky deleted the fix/ci-direct-download-tools branch March 19, 2026 02:06
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