diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7361b91a8a..21db33deae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -519,14 +519,21 @@ jobs: cache: npm - uses: ./.github/actions/npm-ci-retry - run: npm run check:node-runtime - - name: Cache Next.js build cache - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 - with: - path: .build/next/cache - key: nextjs-${{ runner.os }}-node-${{ env.CI_NODE_VERSION }}-${{ hashFiles('package-lock.json') }}-${{ hashFiles('src/**/*', 'open-sse/**/*', 'db/**/*', 'next.config.mjs', 'tsconfig*.json', 'postcss.config.*', 'tailwind.config.*') }} - restore-keys: | - nextjs-${{ runner.os }}-node-${{ env.CI_NODE_VERSION }}-${{ hashFiles('package-lock.json') }}- + # NOTE: the webpack `.build/next/cache` actions/cache step was removed with the + # Turbopack switch below — Turbopack does not read/write the webpack cache dir + # (its persistent FS cache is still experimental and intentionally NOT enabled), + # so restoring the old ~0.5 GB webpack cache would only waste download time. + # Rolling back to webpack = revert this commit (cache step comes back with it). + # + # Turbopack production build (Next 16, stable): benchmarked 1.9× faster than the + # webpack pass (9min0s vs 17min15s on a 32-core box; multi-core Rust vs webpack's + # single-threaded compile). Standalone output smoke-validated (server boots, + # /api/monitoring/health 200). Downstream jobs (e2e ×9, package-artifact, + # electron-package-smoke) consume this artifact, so a green run here validates + # the Turbopack artifact end-to-end. - run: npm run build + env: + OMNIROUTE_USE_TURBOPACK: "1" - name: Archive Next.js build for downstream jobs # Use tar so the archive preserves paths relative to CWD (.build/next/...). # upload-artifact path-stripping is ambiguous when exclude patterns are used;