velxio/.github/workflows
davidmonterocrespo24 a32d282b98 fix(ci): shard frontend tests across two matrix legs
The execArgv fix (PR #200) made vitest actually honor the 8 GB heap
cap — and the next CI run promptly proved that 8 GB is still not
enough. Log: every test passes but the worker hits
"Ineffective mark-compacts near heap limit" at exactly 8011 MB,
the new ceiling. Doubling again to 16 GB would be near the
GitHub-runner total RAM (16 GB) and start swapping.

The real culprit is per-file leak accumulation: 117 test files
share one vitest fork; each file lazy-loads ngspice WASM
(~24 MB), wires up MixedModeScheduler / zustand singletons, and
leaves some of that state alive in module-level closures even
after the file finishes. Sum over the suite ≈ 8 GB+ retained.

Split the run with vitest's built-in `--shard N/M`:

  - matrix.shard: [1, 2] alongside matrix.node-version: [20, 22]
    = 4 parallel runners
  - each runner executes `npx vitest run --shard ${shard}/2`
  - vitest hashes file paths into deterministic shards (same
    flaky file always lands in the same shard)
  - each runner only carries ~60 files of leak state → fits in
    the existing 8 GB cap from poolOptions.forks.execArgv

Coverage upload gated to shard 1 / node 22 to avoid the two
shards racing to overwrite the same artifact name. Coverage
itself runs once on the full suite (best-effort, may OOM, but
`continue-on-error: true` keeps it non-blocking).

The real fix is dispose hooks on the leaking singletons, but
that's a multi-PR cleanup of code paths I haven't touched in
this work item; sharding unblocks CI in the meantime.
2026-05-19 17:18:05 +02:00
..
actions-cache-cleanup.yml ci: cap Actions storage growth — buildx mode=min + auto-cleanup workflow 2026-05-09 23:27:02 +02:00
backend-e2e-tests.yml feat(build): fetch QEMU binaries from velxio.dev license endpoint 2026-05-14 05:55:38 +02:00
backend-unit-tests.yml feat: Enhance CI workflows for backend unit and e2e tests; add environment setup and skip timing-sensitive tests in CI 2026-04-10 23:47:25 -03:00
build-espidf-toolchain.yml feat: update workflows for ESP-IDF toolchain and Docker image publishing 2026-04-04 23:28:06 -03:00
discord-issues.yml Refactor Discord issue notification workflow 2026-03-13 17:23:50 -03:00
discord-release-notify.yml fix: update version to 2.0.1, enhance Discord release notification workflow, and mark subproject commits as dirty 2026-04-07 14:12:10 -03:00
docker-publish.yml fix(ci): pass VELXIO_LICENSE_KEY to publish workflow 2026-05-14 06:26:29 +02:00
frontend-tests.yml fix(ci): shard frontend tests across two matrix legs 2026-05-19 17:18:05 +02:00
library-compile.yml ci: Phase 1d-tests I + K + L — workflow hardening + nightly library-compile 2026-05-15 23:19:11 +02:00
test-circuit.yml feat: expand SPICE component catalog (fases 9 + 10) 2026-04-15 22:41:26 -03:00