import { defineConfig, devices } from "@playwright/test"; const baseURL = process.env.PLAYWRIGHT_BASE_URL; const isCI = !!process.env.CI; if (!baseURL) { throw new Error("PLAYWRIGHT_BASE_URL is required for the live smoke gate."); } export default defineConfig({ testDir: "./tests/e2e/release", testMatch: /.*\.live-smoke\.spec\.ts/, timeout: 60_000, fullyParallel: false, forbidOnly: isCI, retries: isCI ? 1 : 0, workers: 1, reporter: [ ["list"], ["html", { open: "never", outputFolder: "output/playwright/live/report" }], ], outputDir: "output/playwright/live/test-results", use: { baseURL, trace: "retain-on-failure", screenshot: "only-on-failure", video: "retain-on-failure", }, projects: [ { name: "chromium-desktop", use: { ...devices["Desktop Chrome"], }, }, ], });