From 112f537904178b39f35eae827cca371261e78007 Mon Sep 17 00:00:00 2001 From: ISA Date: Mon, 8 Sep 2025 08:45:06 +0200 Subject: [PATCH] test: Jenkinsfile --- .env.development | 2 +- .env.production | 2 +- CHANGELOG.md | 5 +++ Jenkinsfile | 108 +++++----------------------------------------- package-lock.json | 4 +- package.json | 2 +- 6 files changed, 21 insertions(+), 102 deletions(-) diff --git a/.env.development b/.env.development index c38894c..9006281 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.863 +NEXT_PUBLIC_APP_VERSION=1.6.864 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 570e2d8..1a14e9e 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.863 +NEXT_PUBLIC_APP_VERSION=1.6.864 NEXT_PUBLIC_CPL_MODE=production \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 077a044..4130d72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## [1.6.864] – 2025-09-08 + +- fix: Jenkinsfile + +--- ## [1.6.863] – 2025-09-08 - fix: Vereinfacht: Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile index b18d713..87c3bfe 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,113 +1,27 @@ -// Jenkinsfile pipeline { - agent { - // Wir nutzen das Playwright-Image auch als Build-/Test-Container - // (enthält Node, Browser & nötige Deps) - docker { - image 'mcr.microsoft.com/playwright:v1.54.2-jammy' - // optional: args '--user root' falls Rechte benötigt werden - reuseNode true - } - } - - options { - timestamps() - ansiColor('xterm') - } - - environment { - CI = "true" - NODE_ENV = "production" - NEXT_TELEMETRY_DISABLED = "1" - PORT = "3000" - } + agent any + tools { nodejs 'node20' } // exakt der Name aus "Manage Jenkins → Tools" stages { - - stage('Checkout') { - steps { - // Standard-Checkout; läuft im Container - checkout scm - - // LFS & Submodule wie in Woodpecker aktivieren - sh ''' - set -eux - # Falls LFS verwendet wird: - if command -v git >/dev/null; then - git lfs install || true - # Submodule + LFS-Dateien sicherstellen - git submodule update --init --recursive || true - # LFS-Dateien ziehen (falls vorhanden) - git lfs fetch || true - git lfs checkout || true - fi - - # Debug: kurzer Baumüberblick - git status --short || true - ''' - } + stage('Versions') { + steps { sh 'node -v && npm -v' } } - - stage('verify-mocks') { - steps { - sh ''' - set -eux - pwd - node -v && npm -v - - # Husky/prepare überspringen wie im Woodpecker-Job - npm ci --ignore-scripts - - echo "=== git ls-files ===" - git ls-files | grep -i "^mocks/device-cgi-simulator/SERVICE/systemMockData.js" || true - echo "=== ls -la ===" - ls -la mocks/device-cgi-simulator/SERVICE || true - echo "=== file exists? ===" - test -f mocks/device-cgi-simulator/SERVICE/systemMockData.js && echo "FOUND" || (echo "MISSING" && exit 1) - ''' - } + stage('Install deps') { + steps { sh 'npm ci' } } - - stage('e2e-dev') { + stage('Playwright tests') { steps { - sh ''' - set -eux - node -v && npm -v - - # Husky als devDep nicht ausführen -> npm_config_production=false - env npm_config_production=false npm ci - - npm run build - - # Sim-Server im Hintergrund starten - npm run server:sim & - - # Auf Port 3000 warten (ohne curl) - node -e "const http=require('http');let n=120;function ping(){http.get('http://localhost:3000',res=>{console.log('Server is up');process.exit(0)}).on('error',()=>{if(n--<=0){console.error('Server did not start');process.exit(1)}setTimeout(ping,1000)});}ping();" - - # Playwright Tests - npx playwright test --project=chromium - ''' + sh 'npx playwright install' // Browser-Binärdateien laden + sh 'npx playwright test' } } } - post { success { - sh ''' - set -eux - curl -d "Tests erfolgreich in woodpecker" https://ntfy.sh/OEOr8DNB0aT2mXWg231PeEEKwvuzt86qgM8ezQmgfcX9ZIlZ35 - ''' + sh 'curl.exe -d "Tests erfolgreich" https://ntfy.sh/OEOr8DNB0aT2mXWg231PeEEKwvuzt86qgM8ezQmgfcX9ZIlZ35' } failure { - sh ''' - set -eux - curl -d "Tests fehlgeschlagen in woodpecker" https://ntfy.sh/OEOr8DNB0aT2mXWg231PeEEKwvuzt86qgM8ezQmgfcX9ZIlZ35 - ''' - } - always { - // Optional: Artefakte, Logs, Playwright-Reports archivieren - // archiveArtifacts artifacts: 'playwright-report/**', onlyIfSuccessful: false + sh 'curl.exe -d "Tests fehlgeschlagen" https://ntfy.sh/OEOr8DNB0aT2mXWg231PeEEKwvuzt86qgM8ezQmgfcX9ZIlZ35' } } } diff --git a/package-lock.json b/package-lock.json index 3f4f73e..58bbbc5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cpl-v4", - "version": "1.6.863", + "version": "1.6.864", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cpl-v4", - "version": "1.6.863", + "version": "1.6.864", "dependencies": { "@fontsource/roboto": "^5.1.0", "@headlessui/react": "^2.2.4", diff --git a/package.json b/package.json index 02229b4..5aaa1c1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cpl-v4", - "version": "1.6.863", + "version": "1.6.864", "private": true, "scripts": { "dev": "next dev -p 3000",