You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
CI perf: coverage and e2e-build wait ~1.4 min for clippy on every run; clippy failed 0 of 256 PR runs in 7 days #1681
coverage and e2e-build (needs: clippy) can't start until clippy finishes. Both critical-path chains, coverage and e2e-build → e2e (Gradle), therefore start about 1.4 min late on every CI run.
The gate is meant to save money when clippy fails. It didn't fire in the last 7 days: across 256 pull_request CI runs since 10-16, 6 failed, and clippy failed in none of them. coverage failed in all 6. In the merge queue, merge-queue-fail-fast.yml already cancels the run on the first failed job, and windows-compile-check already skips the gate for that reason (#1385).
Proposed fix
Add a tiny preflight job (checkout plus the two reuse checks, ci-reuse-merge-group.py and ci-reuse-pr-head.py) that owns the reuse / pr_unchanged outputs. Change every needs.clippy.outputs.* to needs.preflight.outputs.*.
coverage and e2e-build get needs: preflight. The other needs: clippy jobs get needs: [preflight, clippy], so nothing else changes. Add preflight to ci-ok's needs. clippy keeps its name and stays required.
Every test still runs where it runs today. Only the start order changes.
Expected saving
About 1.2–1.4 min off every merge_group and PR ci-ok. That is ~1.4 min, minus a ~10–20 s runner start for preflight, on a ~7.9 min critical path, so about 16%. On a red clippy, the cost is at most one coverage + e2e-build (+ fan-out) on PRs, about 30 Linux job-min per incident. That's 0 incidents in 7 days.
Not implemented this run: open PR #1639 (ci-janitor, agent:needs-human) also changes .github/workflows/ci.yml, and the implementer skips files another open PR changes. #1639's uv pin is already on main (ci.yml:1468-1472, pipenv-compatibility.yml:109), so #1639 is a no-op. Once it is closed, the next implementer run can take this issue.
[agent] Claiming this issue (CI lane). Branch: agent/fix-ci-coverage-skip-clippy-wait. Claim-ID: 2026-10-23T04:50:43Z-897958
Plan: move the two reuse checks out of clippy into the existing release-readiness job (already a ~10 s Depot-4 job with no needs) so no new job is added, then let coverage and e2e-build depend on it instead of clippy. #1639 also touches ci.yml, but it is a no-op against main (its uv pin landed in aea79f5) and changes different lines, so it does not overlap this change.
Activity
mikolalysenko commentedon Oct 23, 2026
[agent] Claiming this issue (CI lane). Branch: agent/fix-ci-coverage-skip-clippy-wait. Claim-ID: 2026-10-23T04:50:43Z-897958
Plan: move the two reuse checks out of
clippyinto the existingrelease-readinessjob (already a ~10 s Depot-4 job with noneeds) so no new job is added, then letcoverageande2e-builddepend on it instead ofclippy. #1639 also touchesci.yml, but it is a no-op against main (its uv pin landed in aea79f5) and changes different lines, so it does not overlap this change.Generated by Claude Code
mikolalysenko commentedon Oct 23, 2026
[agent] Draft PR: #1682
Generated by Claude Code
CI: start coverage and e2e-build before clippy