ci: install release-plz from prebuilt binary - #43
Merged
Conversation
release-plz/action installs release-plz with `cargo-binstall --strategies=crate-meta-data,compile`. On the self-hosted wavekat-ci runner, binstall's fetchers exceed their resolution deadline before finding the prebuilt release asset, so `compile` wins and the job builds release-plz from source — 8m34s of a 12m32s job, on every push to main including no-op runs. Same action on ubuntu-latest resolves the prebuilt in 2.2s; the difference is egress speed from the self-hosted runner, where the same tarballs take ~25x longer to fetch. Install via taiki-e/install-action instead, which downloads the prebuilt binary directly, and invoke release-plz with the same arguments the action's composite steps use. cargo-semver-checks stays pinned at 0.48 to match what the action was installing. `fallback: none` matters: without it a version missing from install-action's manifest silently falls back to cargo-binstall and restores the source build with nothing in the log to explain it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VbUTWyPHJSyuKYJaz5KgFt
wavekat-eason
marked this pull request as ready for review
July 26, 2026 01:02
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Every push to
mainspends ~12.5 minutes inrelease-plz-release, of which 8m34s is compilingrelease-plzfrom source. This happens even on no-op runs that release nothing.release-plz/actioninstalls release-plz withcargo-binstall --strategies=crate-meta-data,compile(hardcoded in its composite steps). On the self-hostedwavekat-cirunner, binstall's fetchers exceed their resolution deadline before finding the prebuilt release asset, so thecompilestrategy wins:The same action in the same run on
ubuntu-latest(release-plz-pr) resolves the prebuilt in 2.2 seconds. The difference is egress speed from the self-hosted runner — identical tarballs take ~25x longer to fetch there, which is enough to trip binstall's deadline.Measured from run 30181095552:
Fix
Install release-plz with
taiki-e/install-action, which downloads the prebuilt binary from GitHub Releases directly, then invokerelease-plz releasewith the same arguments the action's composite steps use.release-plz@0.3.160is present in install-action's manifest (currently its latest).cargo-semver-checksstays pinned at0.48— what the action was already installing — so the only variable is install speed.fallback: noneis deliberate: without it, a version missing from install-action's manifest silently falls back to cargo-binstall and restores the 10-minute source build with nothing in the log to explain it. Now it fails loudly.--global, since the runner is shared.Expected: ~12.5 min → ~1.5 min.
Verification
release-plz.ymlonly triggers on push tomain, so this can't be exercised by the PR itself — it gets verified on the first push after merge.Not included
release-plz-prstill runs onubuntu-latestusing the action (fast there, but ~1 min of billed GH-minutes per push — could move towavekat-cinow that the install path is fixed).main. At ~1.5 min the no-op case is probably not worth gating.🤖 Generated with Claude Code
https://claude.ai/code/session_01VbUTWyPHJSyuKYJaz5KgFt