diff --git a/.github/workflows/free-tests.yml b/.github/workflows/free-tests.yml index dcc2b5d6b..b7b8f291b 100644 --- a/.github/workflows/free-tests.yml +++ b/.github/workflows/free-tests.yml @@ -440,6 +440,7 @@ jobs: run: xvfb-run -a bun run test:quick free-suite: + name: free-suite (${{ matrix.shard }}) needs: [free-plan, reuse] if: ${{ !cancelled() && needs.free-plan.result == 'success' && (needs.reuse.result != 'success' || needs.reuse.outputs.reused != 'true') }} runs-on: ${{ needs.free-plan.outputs.runner }} diff --git a/test/free-tests-workflow-wiring.test.ts b/test/free-tests-workflow-wiring.test.ts index aa6421271..71a93c7c1 100644 --- a/test/free-tests-workflow-wiring.test.ts +++ b/test/free-tests-workflow-wiring.test.ts @@ -252,6 +252,7 @@ describe('free-tests workflow wiring', () => { loadFreeTestDurations() ?? {}, 'wiring', Number(workflow.env.FREE_SUITE_JOBS)); const declared = workflow.jobs['free-suite']['timeout-minutes']; const emitted = ciPlanMatrix(plan, setupSeconds); + if (!('include' in emitted)) throw new Error('the CI matrix carries no per-shard timeouts'); const short = plan.shards.flatMap(shard => { const neededMs = wallTimeoutForPackedShard(shard.predictedMs, DEFAULT_WALL_TIMEOUT_MS, shard.files.length) + wallTimeoutForShard(FLAKY_RETRY_CAP) + setupSeconds * 1000;