Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
EMEX-decoded vehicles surfaced empty category pages on prod because two runtime prerequisites were absent from the production image: 1. `scripts/emex-vin-scraper.js` was never copied — the build stage's `COPY . .` brings it in but the production stage only cherry-picks `apps/api/dist`, `drizzle`, and `start.sh`. Every EMEX leaf hit therefore failed with "Scraper file not found at: /app/scripts/…" and the category page rendered "Bu kategori icin parca bulunamadi." 2. `PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium-browser` was exported in the Dockerfile but never reached `chromium.launch()` — that env var is consumed by `playwright install`, not at runtime. Playwright fell back to its bundled headless-shell cache path (`/root/.cache/ms-playwright/chromium_headless_shell-*/…`) which does not exist on the alpine image, so even with the scraper file present the browser pool init would have kept failing. Fix: - Dockerfile: `COPY --from=build /app/scripts ./scripts`. - `emex.browser.ts` + `parts-catalogs-auth.service.ts`: read `process.env.PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH` and pass it as `executablePath` to `chromium.launch()` when set. Verified on prod container: `ls /app/scripts` → missing pre-fix; the binary at `/usr/bin/chromium-browser` exists, so the env-var hand-off will resolve cleanly once the new image lands. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.2 KiB
3.2 KiB