TanStack

Content temporarily unavailable

PR CI

The PR workflow runs eight test jobs independently. Each job builds its selected packages and their workspace dependencies before running tests. Builds retain pnpm's dependency order; package tests run without that ordering, with at most two package processes and two Vitest workers per process.

GroupScope
db-1, db-2Two Vitest file shards of DB, excluding the replay process suite
db-replayThe complete oracle-replay.test.ts suite
ivm-offlineIVM and offline transactions; explicit test-source typechecks and dependency version checks
sqlite-coreSQLite persistence core
sqlite-adaptersBrowser, Node, Electron, Cloudflare, React Native, Expo, Capacitor, and Tauri persistence
frameworksReact, React Router, Solid, Vue, Svelte, and Angular
collectionsElectric, Query, PowerSync, RxDB, TrailBase, and the shared E2E suite container

scripts/ci-tests.mjs owns the package assignments. It rejects an unassigned or multiply assigned package test script. When adding a package with tests, assign it to a group and keep the workflow matrix in sync if adding a new group.

Run a group locally after installing the locked dependencies:

shell
node scripts/ci-tests.mjs check
node scripts/ci-tests.mjs build db-1
node scripts/ci-tests.mjs test db-1

The DB jobs retain coverage and typechecking. They write distinct Vitest blob reports, which the final Test job merges into the full DB coverage and test report. That job first requires both test matrices to succeed. Failure, cancellation, or a skipped matrix cannot produce a successful aggregate check. Other packages retain their existing coverage and typecheck configurations. Oracle campaigns and their run budgets are unchanged.

The E2E workflow has three groups: browser/SSR/Query (including the optional Electric suites), Node/Electron persistence, and Cloudflare/mobile persistence. Each builds its dependencies once. Individual suites retain their serial execution where a shared database requires it. The final Run E2E Tests check requires all groups to succeed. Superseded runs are cancelled per PR. Existing Electric and mobile-runtime enablement conditions still apply.

Preview publication and compressed-size comparison run independently. The size job compares DB and React DB in one pass, building the required dependencies at both the PR head and base. Its commands must exist on the base revision too; a build script introduced only by a PR cannot be used for this comparison.

The target is completion within five minutes, including setup, builds, and report aggregation. Measure job execution and queue delay separately, and track both workflow creation-to-completion time and total runner minutes. Before this split, 30 successful PR runs from October 2–5, 2026 had a Test median of 12:39 and P95 of 13:25, excluding queueing. These baseline measurements do not prove the new workflow meets the target; use hosted runs to tune the slowest group.