Commit Graph

2 Commits

Author SHA1 Message Date
renovate[bot] 42e0df471a chore(deps): update github actions 2026-08-03 14:10:54 +00:00
Jordan Ritter 452a26115e ci(showcase): run the harness and shell-dashboard unit suites on PRs
No CI job ran the showcase unit suites. Verified per suite on 91f0321397:

  showcase/harness          3646 tests   NOT RUN
  showcase/shell-dashboard  1331 tests   NOT RUN
  showcase/shell              57 tests   NOT RUN
  showcase/scripts               -       run by showcase_validate.yml

`test_unit.yml` excludes them twice over: `paths-ignore` lists `showcase/**`
AND its nx selection is scoped to `--projects='packages/**'`.
`showcase_validate.yml` runs vitest only in `showcase/scripts`; its two
`working-directory: showcase/harness` steps are a CVDIAG perf bench and an ESM
boot-smoke. `static_quality.yml` runs `nx run-many -t check-types` and the
harness's script is named `typecheck`, so it is not typechecked there either.

So ~5000 showcase unit tests gated nothing — a PR could carry real defects in
`showcase/harness/src/**` and still show an all-green check list.

This adds `test / unit-showcase` with two parallel jobs (harness via nx,
dashboard via npm since it is deliberately outside the pnpm workspace). Both
hazards that make a bare `vitest run` useless here are handled as job steps:

  - generated artifacts: `showcase/.gitignore` ignores `shell/src/data/*.json`
    and `shell-dashboard/src/data/*.json`, but tests statically import
    `frontend-catalog.json` and `docs-status.json` — a missing file is a module
    load error, not a test failure. Generated before the suite runs.

  - `runtime-env-switch.spike.test.ts` HANGS: vitest sits at 0.0% CPU with zero
    output and never spawns the `next build` its beforeAll calls. It is an
    integration spike (one `next build` plus two `next start` boots on fixed
    ports) that this package's own config comment already calls "too heavy for
    the per-file unit suite". Excluded from the unit gate; it needs its own job
    with a real server budget.

A separate workflow rather than steps in showcase_validate.yml: that file is a
single ~900-line job already budgeted at 25 minutes, and the two suites need
different package managers, so they parallelize instead of lengthening the
critical job. Naming matches test_unit.yml / test_unit-python-sdk.yml.

No `continue-on-error` and no `|| true` anywhere in the file.
2026-07-24 19:14:00 -07:00