diff --git a/apps/ui/playwright.config.ts b/apps/ui/playwright.config.ts index 9ffead44..7cd79e71 100644 --- a/apps/ui/playwright.config.ts +++ b/apps/ui/playwright.config.ts @@ -52,6 +52,8 @@ export default defineConfig({ env: { ...process.env, VITE_SKIP_SETUP: "true", + // Skip electron plugin in CI - no display available for Electron + VITE_SKIP_ELECTRON: process.env.CI === "true" ? "true" : undefined, }, }, ], diff --git a/apps/ui/vite.config.mts b/apps/ui/vite.config.mts index 3431415b..ed08342f 100644 --- a/apps/ui/vite.config.mts +++ b/apps/ui/vite.config.mts @@ -8,50 +8,63 @@ import { fileURLToPath } from "url"; const __dirname = path.dirname(fileURLToPath(import.meta.url)); -export default defineConfig({ - plugins: [ - electron({ - main: { - entry: "src/main.ts", - vite: { - build: { - outDir: "dist-electron", - rollupOptions: { - external: ["electron"], - }, - }, - }, +export default defineConfig(({ command }) => { + // Only skip electron plugin during dev server in CI (no display available for Electron) + // Always include it during build - we need dist-electron/main.js for electron-builder + const skipElectron = + command === "serve" && + (process.env.CI === "true" || process.env.VITE_SKIP_ELECTRON === "true"); + + return { + plugins: [ + // Only include electron plugin when not in CI/headless dev mode + ...(skipElectron + ? [] + : [ + electron({ + main: { + entry: "src/main.ts", + vite: { + build: { + outDir: "dist-electron", + rollupOptions: { + external: ["electron"], + }, + }, + }, + }, + preload: { + input: "src/preload.ts", + vite: { + build: { + outDir: "dist-electron", + rollupOptions: { + external: ["electron"], + }, + }, + }, + }, + }), + ]), + TanStackRouterVite({ + target: "react", + autoCodeSplitting: true, + routesDirectory: "./src/routes", + generatedRouteTree: "./src/routeTree.gen.ts", + }), + tailwindcss(), + react(), + ], + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), }, - preload: { - input: "src/preload.ts", - vite: { - build: { - outDir: "dist-electron", - rollupOptions: { - external: ["electron"], - }, - }, - }, - }, - }), - TanStackRouterVite({ - target: "react", - autoCodeSplitting: true, - routesDirectory: "./src/routes", - generatedRouteTree: "./src/routeTree.gen.ts", - }), - tailwindcss(), - react(), - ], - resolve: { - alias: { - "@": path.resolve(__dirname, "./src"), }, - }, - server: { - port: 5173, - }, - build: { - outDir: "dist", - }, + server: { + port: 5173, + }, + build: { + outDir: "dist", + }, + }; });