From 20e767991bb43789ac297632110ea4d44c9e012c Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Fri, 21 Feb 2025 11:18:27 +0100 Subject: [PATCH] ci: refs #6695 Docker & Jenkinsfile fixes/refactor --- Jenkinsfile | 16 +++++++++---- cypress.config.js | 40 ++++++++++++++++++++++++--------- test/cypress/docker-compose.yml | 1 - 3 files changed, 41 insertions(+), 16 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 38c3642279..94d6744f66 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -106,23 +106,31 @@ pipeline { stage('E2E') { environment { CREDENTIALS = credentials('docker-registry') - CI = 'true' + COMPOSE_PROJECT = "${PROJECT_NAME}-${env.BUILD_ID}" + COMPOSE_PARAMS = """ + --project-name ${env.COMPOSE_PROJECT} + --project-directory . + --file test/cypress/docker-compose.yml + """.stripIndent() TZ = 'Europe/Madrid' - COMPOSE_PROJECT = "${PROJECT_NAME}-${env.BRANCH_NAME}-${env.BUILD_ID}".toLowerCase() - COMPOSE_PARAMS = "--project-name ${env.COMPOSE_PROJECT} --project-directory . --file test/cypress/docker-compose.yml" + CI = 'true' } steps { script { def image = docker.build('lilium-dev', '-f docs/Dockerfile.dev docs') sh "docker-compose ${env.COMPOSE_PARAMS} up -d" image.inside("--network ${env.COMPOSE_PROJECT}_default -e CI -e TZ") { - sh 'cypress run --browser chromium --spec test/cypress/integration/claim/claimAction.spec.js' + sh 'cypress run --spec test/cypress/integration/claim/claimAction.spec.js' } } } post { always { sh "docker-compose ${env.COMPOSE_PARAMS} down" + junit( + testResults: 'e2e-junitresults.xml', + allowEmptyResults: true + ) } } } diff --git a/cypress.config.js b/cypress.config.js index 349aeb4c48..fee6c47c35 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -2,11 +2,36 @@ import { defineConfig } from 'cypress'; // https://docs.cypress.io/app/tooling/reporters // https://docs.cypress.io/app/references/configuration // https://www.npmjs.com/package/cypress-mochawesome-reporter -const baseUrl = `http://${process.env.CI ? 'front' : 'localhost'}:9000`; + +let urlHost, + browser, + reporter, + reporterOptions; + +if (process.env.CI) { + urlHost = 'front'; + browser = 'chromium'; + reporter = 'junit'; + reporterOptions = { + mochaFile: 'e2e-junitresults.xml,toConsole=true', + toConsole: true, + }; +} else { + urlHost = 'localhost'; + reporter = 'cypress-mochawesome-reporter'; + reporterOptions = { + charts: true, + reportPageTitle: 'Cypress Inline Reporter', + reportFilename: '[status]_[datetime]-report', + embeddedScreenshots: true, + reportDir: 'test/cypress/reports', + inlineAssets: true, + }; +} export default defineConfig({ e2e: { - baseUrl, + baseUrl: `http://${urlHost}:9000`, experimentalStudio: false, // Desactivado para evitar tiempos de espera innecesarios defaultCommandTimeout: 10000, trashAssetsBeforeRuns: false, @@ -22,15 +47,8 @@ export default defineConfig({ specPattern: 'test/cypress/integration/**/*.spec.js', experimentalRunAllSpecs: true, watchForFileChanges: true, - reporter: 'cypress-mochawesome-reporter', - reporterOptions: { - charts: true, - reportPageTitle: 'Cypress Inline Reporter', - reportFilename: '[status]_[datetime]-report', - embeddedScreenshots: true, - reportDir: 'test/cypress/reports', - inlineAssets: true, - }, + reporter, + reporterOptions, component: { componentFolder: 'src', testFiles: '**/*.spec.js', diff --git a/test/cypress/docker-compose.yml b/test/cypress/docker-compose.yml index 731dd18238..dfc4005844 100644 --- a/test/cypress/docker-compose.yml +++ b/test/cypress/docker-compose.yml @@ -7,7 +7,6 @@ services: - ./test/cypress/back/datasources.json:/salix/loopback/server/datasources.json depends_on: - db - dns_search: . front: image: lilium-dev:latest command: pnpm exec quasar dev