diff --git a/.forgejo/workflows/ci-pr.yml b/.forgejo/workflows/ci-pr.yml index 72137d16..e964e1b6 100644 --- a/.forgejo/workflows/ci-pr.yml +++ b/.forgejo/workflows/ci-pr.yml @@ -351,7 +351,9 @@ jobs: if: needs.scope.outputs.e2e_mode == 'full' || matrix.shard == 1 run: pnpm build env: - NEXT_DIST_DIR: .next/e2e + # Same dir the Playwright webServer serves (playwright.config.ts + # falls back to '.next-e2e'; gate-ci.mjs builds there too). + NEXT_DIST_DIR: .next-e2e - name: E2E tests (full suite, shard ${{ matrix.shard }}) if: needs.scope.outputs.e2e_mode == 'full' diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 5aa7652f..c5009da6 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -114,11 +114,11 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 40 # Main always runs the full suite: split it across 2 jobs (OPS34), each - # building its own `.next/e2e` (measured 2026-08-10: build 172s + tests + # building its own `.next-e2e` (measured 2026-08-10: build 172s + tests # 196s + ~54s fixed → ≈ 5.5 min per shard vs 435s serial). `fail-fast: # false` so one shard's failure keeps the other's diagnostics. Keep the # [1, 2] / 2 literal in sync with `e2eShardConfig` in - # scripts/lib/test-affected-core.mjs (ci-pr reads it via the scope job). + # scripts/lib/test-affected-core.mjs (ci-pr pins the same literal). strategy: fail-fast: false matrix: @@ -168,7 +168,9 @@ jobs: - name: Build for e2e run: pnpm build env: - NEXT_DIST_DIR: .next/e2e + # Same dir the Playwright webServer serves (playwright.config.ts + # falls back to '.next-e2e'; gate-ci.mjs builds there too). + NEXT_DIST_DIR: .next-e2e - name: E2E tests (full suite, shard ${{ matrix.shard }}) # No `--` separator: pnpm would forward it verbatim to playwright and # the flag would be parsed as a file pattern ("No tests found"). diff --git a/tests/unit/ciSkipInvariants.unit.spec.ts b/tests/unit/ciSkipInvariants.unit.spec.ts index 1462c894..d8b97dd0 100644 --- a/tests/unit/ciSkipInvariants.unit.spec.ts +++ b/tests/unit/ciSkipInvariants.unit.spec.ts @@ -77,6 +77,8 @@ describe('ciSkipInvariants', () => { it('keeps local e2e build artifacts outside the development dist directory', () => { for (const file of [ + '.forgejo/workflows/ci.yml', + '.forgejo/workflows/ci-pr.yml', '.gitignore', '.prettierignore', 'eslint.config.mjs',