Skip to content

ci: defer cargo, integration, and coverage lanes to nightly - #2877

Open
b7r6 wants to merge 2 commits into
TraceMachina:mainfrom
b7r6:ci/nightly-redundant-lanes
Open

b7r6 wants to merge 2 commits into
TraceMachina:mainfrom
b7r6:ci/nightly-redundant-lanes

Conversation

@b7r6

@b7r6 b7r6 commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

What and why

Defers CI lanes that are redundant with another per-PR lane, or expensive and non-gating, to a nightly schedule (0 7 * * * UTC) + workflow_dispatch, to cut PR latency. Per-PR keeps the primary build/test signal plus NativeLink's own RBE lanes.

  • Cargo Native (Linux + Windows) → nightly. Per-PR build/test is covered by the Nix Bazel Dev lane.
  • Cargo Dev (nix-cargo) → nightly.
  • Integration (buildstream / buck2 / mongo end-to-end) → nightly. Core build/test is covered per-PR by Bazel Dev.
  • Coverage → nightly + push:main (xlarge runner, 180-min cap, non-gating/no floor; the Pages trend still updates on merge).

Kept per-PR: Bazel Dev, installation (nix-run smoke), the RBE toolchain matrix (generate-rbe-commands + rbe-toolchain — NativeLink's own remote-execution path, the signal worth running on every change), asan, Bazel Native, LRE, and all lints. Jobs that stay per-PR are gated != 'schedule' so they don't fire on the nightly run.

CodeQL is a required status check — moving it off pull_request needs a coordinated branch-protection change, so it is left for a follow-up.

How was this verified?

All three workflow files YAML-validated, and the gating traced per event: on pull_request, the deferred lanes (cargo, Cargo Dev, integration, coverage) are skipped while Bazel Dev + installation + the RBE toolchain matrix + asan + Bazel Native + LRE + lints run; on schedule, the deferred lanes run and the per-PR-only jobs are skipped; a single shared cron exercises the whole deferred set. Not yet observed on a live nightly tick — the first scheduled run will confirm the deferred lanes fire.

Risk

Low and contained — only when these lanes run changes, not what they do. The deliberate tradeoffs: no per-PR Windows cargo coverage and no per-PR end-to-end integration; each is validated nightly against main and on-demand. The primary per-PR build/test signal (Bazel Dev), the RBE toolchain matrix, and the memory/race signal (asan) are unchanged. No source, config, or wire-format changes.

AI assistance

An agent (Claude Code) drafted these workflow edits and this description; I reviewed every line and verified the trigger/gating logic and YAML myself.

@vercel

vercel Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
nativelink Ready Ready Preview Oct 5, 2026 5:50pm UTC
nativelink-aidm Ready Ready Preview Oct 5, 2026 5:50pm UTC

Request Review

@github-actions

This comment has been minimized.

@b7r6
b7r6 force-pushed the ci/nightly-redundant-lanes branch from 5356c33 to d1a9e1e Compare October 3, 2026 20:32
@b7r6
b7r6 force-pushed the ci/nightly-redundant-lanes branch from d1a9e1e to 49a657f Compare October 3, 2026 20:37
@b7r6 b7r6 changed the title ci: move redundant and expensive lanes to a nightly schedule ci: move redundant and expensive lanes (cargo + coverage) to nightly Oct 3, 2026
@b7r6
b7r6 force-pushed the ci/nightly-redundant-lanes branch from 49a657f to 2265ca7 Compare October 3, 2026 20:48
@b7r6 b7r6 changed the title ci: move redundant and expensive lanes (cargo + coverage) to nightly ci: defer cargo, integration, RBE-toolchain, and coverage lanes to nightly Oct 3, 2026
@b7r6
b7r6 force-pushed the ci/nightly-redundant-lanes branch from 2265ca7 to da552fe Compare October 3, 2026 20:57

@MarcusSorealheis MarcusSorealheis left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@MarcusSorealheis MarcusSorealheis left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We cannot move all of rbe testing to nightly.

Defer CI lanes that are redundant with another per-PR lane, or expensive
and non-gating, to a nightly schedule (0 7 * * * UTC) + workflow_dispatch.
Per-PR keeps Bazel Dev, the install smoke test, and NativeLink's own RBE
toolchain matrix; the rest runs nightly.

- Cargo Native (Linux + Windows): nightly.
- Cargo Dev (nix-cargo): nightly.
- Integration (buildstream/buck2/mongo): nightly; core build/test covered
  per-PR by Bazel Dev.
- Coverage: nightly + push:main (xlarge, 180-min, non-gating).

Kept per-PR: Bazel Dev, installation, RBE toolchain matrix
(generate-rbe-commands + rbe-toolchain), asan, Bazel Native, LRE, lints.
CodeQL is a required check, left for a coordinated branch-protection follow-up.
@b7r6 b7r6 changed the title ci: defer cargo, integration, RBE-toolchain, and coverage lanes to nightly ci: defer cargo, integration, and coverage lanes to nightly Oct 3, 2026
@b7r6
b7r6 force-pushed the ci/nightly-redundant-lanes branch from da552fe to 7ef505e Compare October 3, 2026 21:05
b7r6 pushed a commit to b7r6/nativelink that referenced this pull request Oct 4, 2026
Combines TraceMachina#2877 + TraceMachina#2878 + TraceMachina#2880 on one branch so a single CI run shows the
true end-state per-PR wall clock. Not for merge: the individual PRs are the
review units; this exists to measure their net effect.
b7r6 pushed a commit to b7r6/nativelink that referenced this pull request Oct 4, 2026
Combines TraceMachina#2877 + TraceMachina#2878 + TraceMachina#2880 on one branch so a single CI run shows the
true end-state per-PR wall clock. Not for merge: the individual PRs are the
review units; this exists to measure their net effect.
@b7r6

b7r6 commented Oct 5, 2026

Copy link
Copy Markdown
Contributor Author

@MarcusSorealheis I think we got those back in on Saturday, or am I conflating the pictued lanes with the ones you mean? This is the most recent run.

image

This branch was successfully deployed

2 active deployments
Preview – nativelink — 4f6fdb31 Deployed Oct 5, 2026 by vercel[bot]
Preview – nativelink-aidm — 4f6fdb31 Deployed Oct 5, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants