mirror of
https://github.com/bulwarkmail/webmail.git
synced 2026-11-03 00:13:09 +00:00
ci: run the unit tests in four parallel shards
This commit is contained in:
@@ -11,9 +11,17 @@ permissions:
|
||||
|
||||
jobs:
|
||||
vitest:
|
||||
name: Vitest
|
||||
name: Vitest (${{ matrix.shard }}/4)
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
timeout-minutes: 20
|
||||
# Most of a run is per-file overhead (imports and jsdom setup), not test
|
||||
# code, so spreading the files over parallel runners cuts the wall time
|
||||
# almost linearly. fail-fast is off so one red shard doesn't hide failures
|
||||
# in the others.
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
shard: [1, 2, 3, 4]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
@@ -33,7 +41,7 @@ jobs:
|
||||
# forks + a small worker count keeps the load-sensitive component tests
|
||||
# from timing out on the shared runners; the longer per-test timeout
|
||||
# covers the jsdom-heavy suites.
|
||||
run: npx vitest run --pool=forks --maxWorkers=2 --testTimeout=15000
|
||||
run: npx vitest run --pool=forks --maxWorkers=2 --testTimeout=15000 --shard=${{ matrix.shard }}/4
|
||||
|
||||
# The pre-commit hook lints only staged files and never runs on fork PRs,
|
||||
# so this is the one place the whole tree is checked.
|
||||
|
||||
Reference in New Issue
Block a user