tag-release: drop the deploy job; deploys stay manual - #282
Conversation
A deploy is flaky by nature — per-network, funds-dependent, at the mercy of RPC
archive/fork behaviour — and a retry-prone operation must not gate a one-shot tag
publish, where a single transient RPC failure blocks the whole release. Observed
live: the folded-in deploy failed on `createSelectFork` against a load-balanced
RPC ("Unknown state") and took the release down with it.
So the deploy goes back to the repo's own human-driven rainix-manual-sol-artifacts
dispatch, run before tagging. This workflow no longer broadcasts; it attests: the
`verify` step (the fork suite) checks prod exists at the freshly regenerated pins,
and a release whose pins don't resolve on-chain fails there and publishes nothing.
A transient verify failure is just a retry of the tag — it ships nothing.
Removes the `deploy` job, the deploy-suites/deploy-script/deploy-verify inputs, and
the deploy-only secrets (PRIVATE_KEY, EXPLORER_VERIFICATION_KEY, CI_DEPLOY_* etherscan
keys). `release` now `needs: guard` directly. The fork-RPC secrets stay for verify.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 24 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
✨ 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 |
|
Reviewed 74a1114: approve CodeRabbit is rate-limited (its only comment here is the rate-limit notice, no review), so this is my own adversarial review, and the change is a pure deletion — lower risk than #280's additions. Verified: the The one red — The companion caller edit (drop |
rainix-tag-release no longer runs the deploy (rainlanguage/rainix#282) — the deploy stays a manual rainix-manual-sol-artifacts dispatch run before tagging. The tag now verifies prod exists + publishes + snapshots.
|
@coderabbitai assess this PR size classification for the totality of the PR with the following criterias and report it in your comment: S/M/L PR Classification Guidelines:This guide helps classify merged pull requests by effort and complexity rather than just line count. The goal is to assess the difficulty and scope of changes after they have been completed. Small (S)Characteristics:
Review Effort: Would have taken 5-10 minutes Examples:
Medium (M)Characteristics:
Review Effort: Would have taken 15-30 minutes Examples:
Large (L)Characteristics:
Review Effort: Would have taken 45+ minutes Examples:
Additional Factors to ConsiderWhen deciding between sizes, also consider:
Notes:
|
Follow-up to #280. Decouples the on-chain deploy from the tag publish.
Why
A deploy is flaky by nature — per-network, funds-dependent, and at the mercy of RPC archive/fork behaviour. A retry-prone operation like that must not gate a one-shot tag publish: a single transient RPC failure blocks the entire release.
This isn't hypothetical — it's what happened on the first real run. Cutting
sol-v0.1.6onrain.factory.deployfailed in the folded-in deploy job:The deploy forked Arbitrum against a load-balanced RPC and got routed to a backend without the state — and took the whole release down with it, even though nothing was wrong with the code or the publish. (The fork tests passed on the same endpoint minutes earlier; load-balanced routing is nondeterministic.)
The change
The deploy goes back to being the repo's own human-driven
rainix-manual-sol-artifactsdispatch, run before tagging. This workflow no longer broadcasts — it attests:guard→release(thedeployjob is gone;releasenowneeds: guard).verifystep (the repo's fork suite) checks prod exists at the freshly regenerated pins. That is the confirmation the manual deploy landed. If the pins don't resolve on-chain, verify fails and nothing publishes.Removes the
deployjob, thedeploy-suites/deploy-script/deploy-verifyinputs, and the deploy-only secrets (PRIVATE_KEY,EXPLORER_VERIFICATION_KEY,CI_DEPLOY_*etherscan keys). The fork-RPC secrets stay — verify still forks.Consumer follow-up
rain.factory.deploy'spackage-release.yamlpassesdeploy-suites, which this removes — a companion one-line edit drops that input. (Separate push; that repo's next release tag uses the manual-deploy-then-tag flow.)Validation
guard→release(needs: guard); nodeployjob, no deploy inputs/secrets; fork-RPC secrets retained.pre-commitclean (yamlfmt).The deploy/library split principle is unchanged — this only moves the deploy half of a deploy repo's release out of the one-shot and back to the human, where a flaky broadcast belongs.
🤖 Generated with Claude Code