From 3b3f212cebf1cc336deaaace44ef030ce663b993 Mon Sep 17 00:00:00 2001 From: Jeppe Bundgaard Date: Mon, 8 Jun 2026 18:54:25 +0200 Subject: [PATCH] ci: use polling for Playwright Vite server --- playwright.global-setup.mjs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/playwright.global-setup.mjs b/playwright.global-setup.mjs index 5715042e..8c527a6a 100644 --- a/playwright.global-setup.mjs +++ b/playwright.global-setup.mjs @@ -19,6 +19,16 @@ const stderrLogFile = path.resolve(serverLogDir, `dev-server-${runtimeNamespace} const viteCliPath = path.resolve(process.cwd(), "node_modules/vite/bin/vite.js"); const serverOutputLimit = 80; const activeOutputReaders = []; +const viteServerEnv = { + ...process.env, + PLAYWRIGHT: "1", + ...(process.env.CI + ? { + CHOKIDAR_INTERVAL: process.env.CHOKIDAR_INTERVAL || "300", + CHOKIDAR_USEPOLLING: process.env.CHOKIDAR_USEPOLLING || "true", + } + : {}), +}; // Hardlinked Windows worktrees can break Vite's bundled config temp paths during Playwright boot. const viteDevArgs = [ ...(process.env.PLAYWRIGHT_VITE_FORCE === "1" ? ["--force"] : []), @@ -449,10 +459,7 @@ export default async function globalSetup() { const serverProcess = spawn(process.execPath, [viteCliPath, ...viteDevArgs], { cwd: process.cwd(), detached: true, - env: { - ...process.env, - PLAYWRIGHT: "1", - }, + env: viteServerEnv, stdio: ["ignore", "pipe", "pipe"], windowsHide: true, });