diff --git a/.github/workflows/e2e-tests.yaml b/.github/workflows/e2e-tests.yaml index dd4031464..24d672d5e 100644 --- a/.github/workflows/e2e-tests.yaml +++ b/.github/workflows/e2e-tests.yaml @@ -42,17 +42,26 @@ jobs: # The sequential Electron suite is split into Playwright shards (one # runner each, split by spec file). Measured on 2026-09-26, a third of # the suite is 6-12 minutes of test time on top of 3-7 minutes of - # setup, so 30 minutes leaves room for retries on every OS. - timeout-minutes: 30 + # setup. macOS uses two shards because its runners are the scarcest: + # three macOS shards per run queued for 45-57 minutes on master. Half + # of the suite is about 15 minutes of test time on macOS, so it gets + # a longer timeout to leave room for retries. + timeout-minutes: ${{ matrix.os == 'macos-latest' && 40 || 30 }} env: IPTVNATOR_ALLOW_PRIVATE_NETWORK_URLS: '1' NX_SKIP_NX_CACHE: true strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - shard: [1, 2, 3] - shard-total: [3] + include: + - { os: ubuntu-latest, shard: 1, shard-total: 3 } + - { os: ubuntu-latest, shard: 2, shard-total: 3 } + - { os: ubuntu-latest, shard: 3, shard-total: 3 } + - { os: macos-latest, shard: 1, shard-total: 2 } + - { os: macos-latest, shard: 2, shard-total: 2 } + - { os: windows-latest, shard: 1, shard-total: 3 } + - { os: windows-latest, shard: 2, shard-total: 3 } + - { os: windows-latest, shard: 3, shard-total: 3 } steps: - uses: actions/checkout@v7 diff --git a/docs/architecture/validation-map.md b/docs/architecture/validation-map.md index 0c38921f3..92e500a9c 100644 --- a/docs/architecture/validation-map.md +++ b/docs/architecture/validation-map.md @@ -146,8 +146,9 @@ After an E2E run, generate the semantic summary with: pnpm run coverage:e2e:summary ``` -CI runs the Electron suite as three Playwright shards per OS -(`--shard=/3`, split by spec file because the suite is sequential). Each +CI runs the Electron suite as Playwright shards (`--shard=/`, split +by spec file because the suite is sequential): three shards on Ubuntu and +Windows, two on macOS, whose runners are the scarcest and queued longest. Each shard uploads `playwright-report-electron--`; the follow-up `Electron E2E summary` job downloads the shards of each OS into their own directory and runs the summary per OS with `--input=` and