diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 7dfef4d6..f5f9b5ca 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -9,6 +9,12 @@ concurrency: env: NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} + # nx.json sets parallel: 5 for local dev machines. GitHub-hosted runners have + # far fewer cores/RAM, and each test:lib (vitest) / test:types (tsc) task + # spawns its own worker pool. Running 5 such heavy tasks at once oversubscribes + # the runner and intermittently OOM-kills or stalls tasks, producing flaky + # failures that pass on re-run. Cap CI parallelism to keep tasks within budget. + NX_PARALLEL: 3 permissions: contents: read diff --git a/packages/devtools/vite.config.ts b/packages/devtools/vite.config.ts index 936f78d7..96f58bb5 100644 --- a/packages/devtools/vite.config.ts +++ b/packages/devtools/vite.config.ts @@ -13,6 +13,12 @@ const config = defineConfig({ environment: 'jsdom', setupFiles: ['./tests/test-setup.ts'], globals: true, + // Component tests render the full Solid + goober tree (see src/**/*.test.tsx). + // These take 1-4s locally but run on shared CI runners that are ~4x slower, + // pushing individual tests past vitest's default 5s timeout and causing + // flaky `test:lib` failures. Give them headroom; fast tests are unaffected. + testTimeout: 30_000, + hookTimeout: 30_000, }, })