From ac664093d24d5e2a70f14dd2f6fe295fd0e80eab Mon Sep 17 00:00:00 2001 From: Francisco Solla Date: Mon, 17 Aug 2026 11:33:01 -0300 Subject: [PATCH] =?UTF-8?q?fix(ci=20OPS50):=20build=20e2e=20em=20.next-e2e?= =?UTF-8?q?=20(o=20webServer=20do=20playwright=20serve=20esse=20dir=20desd?= =?UTF-8?q?e=207ca0efc9=20=E2=80=94=20os=20workflows=20ainda=20buildavam?= =?UTF-8?q?=20em=20.next/e2e=20e=20o=20'next=20start'=20n=C3=A3o=20achava?= =?UTF-8?q?=20o=20bundle)=20+=20invariante=20unit=20passa=20a=20pinar=20os?= =?UTF-8?q?=20workflows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .forgejo/workflows/ci-pr.yml | 4 +++- .forgejo/workflows/ci.yml | 8 +++++--- tests/unit/ciSkipInvariants.unit.spec.ts | 2 ++ 3 files changed, 10 insertions(+), 4 deletions(-) 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',