fix(ci OPS50): build e2e em .next-e2e (o webServer do playwright serve esse dir desde 7ca0efc9 — os workflows ainda buildavam em .next/e2e e o 'next start' não achava o bundle) + invariante unit passa a pinar os workflows

This commit is contained in:
Francisco Solla 2026-08-17 11:33:01 -03:00
parent b51f745f66
commit ac664093d2
3 changed files with 10 additions and 4 deletions

View file

@ -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'

View file

@ -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").

View file

@ -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',