ci(rust): incremental builds, sccache, and fast-lane split - #559
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reached
Next review available in: 43 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: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
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 |
82ff048 to
3371740
Compare
- sccache-action steps are continue-on-error with an explicit fallback that unsets RUSTC_WRAPPER, so a flaky action cannot block the merge-gate path (the concern behind 92991a3's removal). - Contract test now pins the rust_fast_gates scope condition inside its job block, requires sccache wiring in BOTH heavy jobs, and adds negative pins so moved work (fmt/shellcheck/shell suites) cannot silently reappear in the heavy rust job. Refs #558
- sccache-action steps are continue-on-error with an explicit fallback that unsets RUSTC_WRAPPER, so a flaky action cannot block the merge-gate path (the concern behind 92991a3's removal). - Contract test now pins the rust_fast_gates scope condition inside its job block, requires sccache wiring in BOTH heavy jobs, and adds negative pins so moved work (fmt/shellcheck/shell suites) cannot silently reappear in the heavy rust job. Refs #558
…iew (#566) * ci(rust): harden sccache setup and scope-contract pins after #559 review - sccache-action steps are continue-on-error with an explicit fallback that unsets RUSTC_WRAPPER, so a flaky action cannot block the merge-gate path (the concern behind 92991a3's removal). - Contract test now pins the rust_fast_gates scope condition inside its job block, requires sccache wiring in BOTH heavy jobs, and adds negative pins so moved work (fmt/shellcheck/shell suites) cannot silently reappear in the heavy rust job. Refs #558 * test(ci): per-job positive and negative scope pins, verified by mutation Second-round review: the earlier pins were file-wide counts with a leaky awk block and no positive placement assertions. Now each job block is extracted exactly, sccache presence is asserted per job, suite placement is pinned both directions (including the market-recorder suite's home in the heavy job), and a mutation test (recorder moved back to fast gates) proves the pins fail. Refs #558 --------- Co-authored-by: Sonic Shih <sonic.shih@mandonothing.com>
Replace the homegrown sccache setup (apt/cargo install plus actions/cache on ~/.cache/sccache, whose research-image primary key embedded github.sha and could never hit) with the #559/#566 pattern in every job that compiles Rust on the runner: - mozilla-actions/sccache-action@v0.0.10 with continue-on-error and a fallback step that unsets RUSTC_WRAPPER/SCCACHE_GHA_ENABLED - job env RUSTC_WRAPPER=sccache and SCCACHE_GHA_ENABLED=true - Swatinem/rust-cache keys dimensioned on rustc version, sccache version, and Cargo.lock - ${SCCACHE_PATH:-sccache} --show-stats || true evidence steps The acr-publish publish matrix compiles inside docker buildx, so the host-side wrapper does not apply there and that job is unchanged. No test semantics, job conditions, or gating changed. Refs #567
#570) * ci(rust): backfill sccache-action pattern onto ploy-ci and acr-publish Replace the homegrown sccache setup (apt/cargo install plus actions/cache on ~/.cache/sccache, whose research-image primary key embedded github.sha and could never hit) with the #559/#566 pattern in every job that compiles Rust on the runner: - mozilla-actions/sccache-action@v0.0.10 with continue-on-error and a fallback step that unsets RUSTC_WRAPPER/SCCACHE_GHA_ENABLED - job env RUSTC_WRAPPER=sccache and SCCACHE_GHA_ENABLED=true - Swatinem/rust-cache keys dimensioned on rustc version, sccache version, and Cargo.lock - ${SCCACHE_PATH:-sccache} --show-stats || true evidence steps The acr-publish publish matrix compiles inside docker buildx, so the host-side wrapper does not apply there and that job is unchanged. No test semantics, job conditions, or gating changed. Refs #567 * ci(rust): tolerate missing sccache binary in cache dimension steps CodeRabbit P1 on #570: when sccache setup fails (the case continue-on-error tolerates), the unconditional version lookup would fail the job. Mirrors the ci.yml fix. Refs #567 --------- Co-authored-by: Sonic Shih <sonic.shih@mandonothing.com>
Change contract
Rust CI gets cross-run compilation caching (sccache with GHA backend, mirroring the repo's own release-rust.yml pattern, RUSTC_WRAPPER opt-in per rust_hft/.cargo/config.toml) and a parallel "Rust Fast Gates" job (layout, Python-ban, fmt, bash -n, shellcheck, shell contract suites) that fails within ~3 minutes instead of after 10+ minutes of compilation. CARGO_INCREMENTAL stays 0 — justification: no edit-recompile cycles exist within a single CI run; across runs, sccache is the more robust reuse mechanism and incremental would bloat cache/non-determinism.
Out of scope
Dependency / merge order
None. One cold run after merge is expected (new cache keys include the sccache version).
Focused validation
bash -non every embedded run block.github/scripts/test-select-rust-ci-scope.shsuite passes (6 new contract greps pin the fast job + sccache lines)Rollout / rollback impact
CI-only. Rollback = revert; old caches untouched due to new key dimensions.
Issue relationship
Refs #558