diff --git a/.env.development b/.env.development index 8a7e065..b241e88 100644 --- a/.env.development +++ b/.env.development @@ -6,6 +6,6 @@ NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START=false NEXT_PUBLIC_EXPORT_STATIC=false NEXT_PUBLIC_USE_CGI=false # App-Versionsnummer -NEXT_PUBLIC_APP_VERSION=1.6.778 +NEXT_PUBLIC_APP_VERSION=1.6.779 NEXT_PUBLIC_CPL_MODE=json # json (Entwicklungsumgebung) oder jsSimulatedProd (CPL ->CGI-Interface-Simulator) oder production (CPL-> CGI-Interface Platzhalter) diff --git a/.env.production b/.env.production index b9312e6..c218eff 100644 --- a/.env.production +++ b/.env.production @@ -5,5 +5,5 @@ NEXT_PUBLIC_CPL_API_PATH=/CPL NEXT_PUBLIC_EXPORT_STATIC=true NEXT_PUBLIC_USE_CGI=true # App-Versionsnummer -NEXT_PUBLIC_APP_VERSION=1.6.778 +NEXT_PUBLIC_APP_VERSION=1.6.779 NEXT_PUBLIC_CPL_MODE=production \ No newline at end of file diff --git a/.woodpecker.yml b/.woodpecker.yml index e9cb3d5..7ab1163 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,10 +1,14 @@ -# .woodpecker.yml — Option B (Browser im Workspace) +# .woodpecker.yml — Option B (Browser im Workspace, stabil für CI) steps: - name: install-dependencies-and-browsers image: node:22 environment: PLAYWRIGHT_BROWSERS_PATH: "0" # Browser in ./node_modules/playwright/.local-browsers CI: "true" + E2E_BASE_URL: "http://localhost:3000" + LANG: "C.UTF-8" + TZ: "Europe/Berlin" + PW_HEADLESS: "1" # erzwingt headless in der Config commands: - echo "📦 Installing deps..." - npm ci @@ -16,8 +20,12 @@ steps: environment: PLAYWRIGHT_BROWSERS_PATH: "0" # gleicher Pfad wie oben CI: "true" + E2E_BASE_URL: "http://localhost:3000" + LANG: "C.UTF-8" + TZ: "Europe/Berlin" + PW_HEADLESS: "1" commands: - echo "🔧 Installing system dependencies for Playwright..." - npx playwright install-deps - echo "🧪 Running Playwright tests (Chromium only)..." - - npx playwright test --project=chromium + - npx playwright test --project=chromium --headless diff --git a/CHANGELOG.md b/CHANGELOG.md index 4da4fa3..22e03b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## [1.6.779] – 2025-08-29 + +- fix: start chromium headless + +--- ## [1.6.778] – 2025-08-29 - test: meldungenTest.ts diff --git a/package-lock.json b/package-lock.json index 6985af0..a28ce92 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cpl-v4", - "version": "1.6.778", + "version": "1.6.779", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cpl-v4", - "version": "1.6.778", + "version": "1.6.779", "dependencies": { "@fontsource/roboto": "^5.1.0", "@headlessui/react": "^2.2.4", diff --git a/package.json b/package.json index 646b3e0..7194a5d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cpl-v4", - "version": "1.6.778", + "version": "1.6.779", "private": true, "scripts": { "dev": "next dev", diff --git a/playwright.config.ts b/playwright.config.ts index 25a2351..a26c027 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -1,28 +1,53 @@ import { defineConfig, devices } from "@playwright/test"; +const CI = !!process.env.CI; + export default defineConfig({ testDir: "./playwright/tests", + + // Globale Zeitlimits timeout: 90_000, - expect: { timeout: 10_000 }, + expect: { timeout: 15_000 }, // etwas großzügiger im CI + + // Setup/Parallelisierung globalSetup: "./playwright/global-setup", fullyParallel: true, - forbidOnly: !!process.env.CI, - retries: process.env.CI ? 2 : 0, - workers: process.env.CI ? 1 : undefined, + forbidOnly: CI, + retries: CI ? 2 : 0, + workers: CI ? 1 : undefined, - reporter: [["html", { outputFolder: "playwright/report" }]], + // Reporter & Ausgabepfade + reporter: [ + ["list"], + ["html", { outputFolder: "playwright/report", open: "never" }], + ], outputDir: "playwright/test-results", + // Standard-Defaults für alle Tests/Projekte use: { - baseURL: "http://localhost:3000", - headless: true, - launchOptions: { slowMo: 300 }, + // Base-URL: im CI per ENV steuerbar + baseURL: process.env.E2E_BASE_URL || "http://localhost:3000", + + // Headless im CI (und wenn PW_HEADLESS=1); lokal darfst du headed verwenden + headless: process.env.PW_HEADLESS === "1" || CI, + + // Container-robuste Flags + launchOptions: { + args: ["--no-sandbox", "--disable-dev-shm-usage"], + }, + viewport: { width: 1920, height: 1080 }, - video: "on", - screenshot: "on", - trace: "on-first-retry", + + // Artefakte – sparsam, aber genug fürs Debugging + video: CI ? "retain-on-failure" : "on-first-retry", + screenshot: CI ? "only-on-failure" : "only-on-failure", + trace: "retain-on-failure", + + // Optional: falls du Test-IDs nutzt + testIdAttribute: "data-testid", }, + // Projekte (nur Chromium) projects: [ { name: "chromium", @@ -30,9 +55,11 @@ export default defineConfig({ }, ], + // Webserver: baue & starte Next.js (statt "dev") webServer: { - command: "npm run dev", - url: "http://localhost:3000", - reuseExistingServer: !process.env.CI, + command: "npm run build && npm run start -p 3000", + url: process.env.E2E_BASE_URL || "http://localhost:3000", + reuseExistingServer: !CI, + timeout: 120_000, // Zeit für Build+Start }, });