On this page
On this page
Testing and CI
CI scope and routing
This page is an index. Scope and routing is documented on four pages, one per reader job. Open the page that matches your task.
Full main CI is hourly by default, using
ordinary full manual coverage without changed-path filtering. The following
push-routing rules apply when OPENCLAW_CI_ON_PUSH=true.
Every admitted upstream main push run selects the published-upgrade Docker survivor;
QA Smoke retains owner-path selection. Pull requests and exact-head PR fallbacks
omit those proofs while retaining unit/boundary checks. Control UI performance
uses its UI/build/import owners. Ordinary manual and release validation select
all six Docker seed lanes and the full QA Smoke profile independently of changed
paths. Coalesced opt-in main pushes do not accumulate a diff; hourly full runs cover
the resulting main tree independently. See
selection and
manual dispatches.
| Page | Read it when |
|---|---|
| Scope selection | Why a lane was or was not selected: changed-scope detection and the per-area routing rules. |
| Node test lanes | How the slowest Node test families are split, balanced, packed, and cached. |
| Job budgets and platform lanes | UI shards, concurrency and matrix budgets, lint memory policy, Android rows, and sticky disks. |
| Manual dispatches | Manual CI dispatch behavior, release-gate fallbacks, and the Windows Testbox Check. |
Short hybrid jobs use a bounded hosted offload: the complete selected base must fit 40 hosted rows before up to five more move from Blacksmith. Coverage selection remains unchanged.
Where each section moved
Every section heading from the previous single-page version keeps its anchor here, so an existing link such as /ci/scope-and-routing#manual-dispatches still resolves. Each entry points at the page that now holds the content.