Repository navigation
CI: run the full e2e tier nightly, not per push (#1414) - #1415
Mikola Lysenko (mikolalysenko) wants to merge 2 commits into
Conversation
e2e-full, yarn-berry-full and cargo-vex-matrix-full only skipped pull_request and merge_group, so all 41 of their legs also ran on every push to main: 41 of the 50 jobs a landing ran, about 41 billed runner-minutes each time. Gate them like e2e-docker instead: nightly, workflow_dispatch (release-qa) and the v5 integration PR, plus pushes to main when CI_SCOPE is full. A regression only this tier catches now shows up in the next nightly rather than on the landing. Update the two scheduling tests that pinned the old condition and the yarn-berry doc that said the job runs on main pushes. Fixes #1414 Assisted-by: Claude Code:claude-opus-5-5
A push to main that reuses the merge-queue result still bundled, compressed and uploaded the ~94 MB ubuntu e2e binaries, only so the full tier could download them. The full tier no longer runs on such a push unless CI_SCOPE is full, so ship the binaries only then. Also correct the comments, the reuse log line and the yarn-berry doc that still said a push to main runs the full tier. Refs #1414 Assisted-by: Claude Code:claude-opus-5-5
|
BugBot review Generated by Claude Code |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit fec483f. Configure here.
|
Ready for review (burn-down agent)
Generated by Claude Code |
Final review briefWhat it does. The three full-tier jobs ( Risk: low. CI config only; no Rust or runtime code. PR and merge-queue tiers are unchanged and Look here
Verified
Changes I made: none. Open questions: none blocking. Optional: decide whether a nightly-only full tier is acceptable for release cadence (the PR author's stated trade-off). Auto-merge is armed, so approving sends it straight to the merge queue. Generated by Claude Code |
LLM Description written by Claude Code:claude-opus-5-5
Fixes #1414
Root cause
e2e-full,yarn-berry-fullandcargo-vex-matrix-fullwere gated onevent != pull_request && event != merge_group. That also matchespush, so every landing on main ran all 41 full-tier legs, even though the workflow header calls this tier nightly. On push run 38197830089 (1779317), 41 of the 50 non-skipped jobs were these legs: ~21 wall-minutes, ~41 billed job-minutes.Change
The three jobs now use the same gate as
e2e-docker:schedule,workflow_dispatch(sorelease-qa(full)still runs and still findse2e-full*, per docs/release-train/DESIGN.md), therelease/v5-prereleasePR, pluspush && vars.CI_SCOPE == 'full', so flippingCI_SCOPE=fullstill brings the tier back on landings. The trade-off: a regression that only this tier catches shows up at the next nightly instead of on the landing.e2e-buildalso stops bundling, compressing and uploading the ~94 MB ubuntu e2e binaries on a push that reuses the merge-queue result, unless `CI_SCOPE` is `full`. Those binaries were kept on reused pushes only for the full tier, and nothing else downloads them there.Also updated: the header and job comments, the `ci-reuse-merge-group.py` log line,
docs/testing/yarn-berry-compatibility.md, and the two scheduling tests that pinned the old condition (test_full_jobs_run_nightly_only_and_share_steps,test_unchanged_pr_merge_skips_only_what_the_queue_re_tests).test_reused_push_keeps_cache_writers_and_unqueued_jobsnow also pins the new upload guard.Credit to Austen Stone (@austenstone), who reported this and proposed the same gate in a fork. This is an independent implementation, not a cherry-pick of that commit.
Runner usage
ci-okneeds list and required check names are unchanged;ci-okalready treats skipped jobs as passing. Depot mapping andDISABLE_DEPOT_RUNNERSare untouched.Validation
python3 -m pytest scripts/tests -q: 334 passed, 6 skipped.test_full_jobs_run_nightly_only_and_share_steps, plus yarn-berry-full in the scheduling test). With this ci.yml they pass.actionlint1.7.7: 36 findings before and after, all pre-existing "alias node" complaints aboutsteps: *anchor.zizmor --offline: identical (59 findings, 0 medium/high) before and after.fromJSONmatrix was touched.cfg(windows)or platform code was touched, so no full-scope dispatch is needed./code-review high
The review found no correctness bugs. Fixed: the redundant ubuntu artifact upload on reused pushes, and the stale comments, log line, test comment and doc. Not changed:
🤖 Generated with Claude Code
https://claude.ai/code/session_01Cxz4F7nBdZPMSx1tya1sBt
Generated by Claude Code