test(nightly): stabilize the exhaustive nightly suite (#345)

Triaged the nightly failures (all pre-existing, unrelated to the analytics
work) and fixed the ones with clear root causes:

- video-speed: a 1s tiny.mp4 sped up 2x rounds to ~0.75s, flaking the +/-25%
  duration assertion under heavy CI load. Use the 8s hero.mp4 (still 44.1kHz)
  so rounding is negligible. Verified locally.
- Extended Matrix + Coverage timeouts: full-matrix / coverage-instrumented runs
  starve the heavy media tests under 4 forks at the 30s default. Make maxForks
  env-overridable (VITEST_MAX_FORKS) and run those jobs with 2 forks + a 300s
  timeout so format-matrix conversions and qr-generate stop timing out.
- Device Matrix visual baselines: the update-visual-baselines workflow could
  not start the app ('failed to create database') because it never provisioned
  Postgres/Redis. Add the same services block the e2e jobs use.
- Docker E2E: a container pnpm install network blip exits 254. Add fetch
  retries + a longer network timeout (frozen-lockfile already passes locally).
- Cross-browser: the home page is the tool catalog now (no dropzone), and the
  tool routes moved to /<section>/<toolId>. Point the upload test at a real
  tool page and fix the stale single-segment routes (/resize -> /image/resize,
  etc.).

The flaky/timeout and cross-browser fixes can only be confirmed by the nightly
(they are load- and browser-specific); a fresh nightly run will verify.
This commit is contained in:
SnapOtter
2026-06-24 18:23:23 +08:00
committed by GitHub
parent 8f4235d2c6
commit 33dfcecd6a
6 changed files with 74 additions and 17 deletions
+7 -1
View File
@@ -81,7 +81,13 @@ COPY packages/ai/package.json packages/ai/tsconfig.json ./packages/ai/
# imports at module load; without it that suite fails to collect.
COPY packages/enterprise/package.json packages/enterprise/tsconfig.json ./packages/enterprise/
# Install ALL dependencies (including devDependencies for testing)
# Install ALL dependencies (including devDependencies for testing).
# Registry hiccups during the container build surface as a hard exit 254
# (interrupted fetch / integrity check). Harden the install with more retries
# and a longer network timeout so a transient blip doesn't fail the whole job.
RUN pnpm config set fetch-retries 5 \
&& pnpm config set fetch-retry-maxtimeout 120000 \
&& pnpm config set network-timeout 600000
RUN pnpm install --frozen-lockfile
# Copy source code