Skip to content

CI: run each e2e suite as its own job (CL-7485) - #672

Merged
TheGreatAxios merged 3 commits into
mainfrom
cl-7485-e2e-matrix
Sep 6, 2026
Merged

TheGreatAxios merged 3 commits into
mainfrom
cl-7485-e2e-matrix

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

Resolves CL-7485

The e2e job ran every scripts/e2e/*.test.ts suite serially in one
job, each booting hub + sidecar against Postgres — 4 to 12 minutes,
though the slowest single suite is under 3.

  • scripts/e2e/list-suites.ts prints the suite ids, folding
    harness, db-gate, db-setup, and list-suites (pure-helper
    tests, no hub boot) into one unit entry.
  • e2e-plan lists the suites; e2e-suite runs them as a
    fail-fast: false matrix, keeping the same Postgres service/env/
    assert steps, and uploads E2E_LOG_DIR per suite as an artifact.
  • A summary e2e job (needs: [e2e-suite], if: always()) fails if
    any matrix entry didn't succeed, keeping the required-check name
    e2e for branch protection.
  • package.json's test:e2e is unchanged for local use.

Before: single e2e job, reported 4-12 min wall (slowest suite alone
under 3 min). After: see this PR's own Actions run for the e2e
summary job's wall time versus a matrix entry's.

Test plan

  • bun run lint
  • bun test scripts/ci-jobs.test.ts scripts/e2e/list-suites.test.ts
  • bun run typecheck
  • Observe this PR's own CI run for actual wall times

Pins the expected shape of an e2e-plan/e2e-suite/e2e job trio and a
list-suites helper that folds the non-hub-booting suites (harness,
db-gate, db-setup, list-suites) into one "unit" entry.
The e2e job ran every scripts/e2e/*.test.ts suite serially in one job,
each booting hub and sidecar against Postgres, so a PR's e2e wall time
scaled with the sum of every suite (4 to 12 minutes) rather than the
slowest one. An e2e-plan job now lists the suites and feeds them into
an e2e-suite matrix job, one job per suite, fail-fast off, each
uploading its E2E_LOG_DIR as an artifact. A summary e2e job keeps that
name for branch protection while the matrix does the work.
Renames the e2e Postgres job reference to e2e-suite and notes that the
e2e-suite matrix job now sets E2E_LOG_DIR and uploads it per suite.
@linear-code

linear-code Bot commented Sep 6, 2026

Copy link
Copy Markdown

CL-7485

@TheGreatAxios
TheGreatAxios merged commit d401cc0 into main Sep 6, 2026
22 checks passed
@TheGreatAxios
TheGreatAxios deleted the cl-7485-e2e-matrix branch September 6, 2026 20:53
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.

1 participant