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.

Was this useful?