From cbccf89b6f29c3ab8d0c988c16de6e798e32c6ef Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 13 Feb 2025 09:54:09 +0100 Subject: [PATCH] refactor: refs #6695 update Jenkinsfile to run E2E tests in parallel and simplify docker-compose command --- Jenkinsfile | 88 ++++++++++++++++++++++++----------------------------- 1 file changed, 39 insertions(+), 49 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ecbd342c3..c0f4964fd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -107,17 +107,7 @@ pipeline { } } - // stage('E2E: Basic') { - // steps { - // script { - // runTestsInParallel([ - // // 'test/cypress/integration/vnComponent/', - // 'test/cypress/integration/outLogin/', - // ]) - // } - // } - // } - stage('E2E: Sections') { + stage('Run') { steps { script { sh "docker-compose -p ${env.NETWORK} -f docker-compose.e2e.yml up -d back" @@ -185,49 +175,49 @@ def cleanDockerE2E() { } } -def runTestsInParallel(int numParallelGroups) { - def folders = sh(script: "ls -d test/cypress/integration/*/ || echo ''", returnStdout: true).trim().split('\n').findAll { it } +// def runTestsInParallel(int numParallelGroups) { +// def folders = sh(script: "ls -d test/cypress/integration/*/ || echo ''", returnStdout: true).trim().split('\n').findAll { it } - if (folders.isEmpty()) { - echo "No se encontraron carpetas de pruebas." - return - } +// if (folders.isEmpty()) { +// echo "No se encontraron carpetas de pruebas." +// return +// } - // Divide las carpetas en grupos para paralelizar - def groupSize = Math.ceil((folders.size() as double) / numParallelGroups).toInteger() - def groups = folders.collate(groupSize) - def tasks = [:] +// // Divide las carpetas en grupos para paralelizar +// def groupSize = Math.ceil((folders.size() as double) / numParallelGroups).toInteger() +// def groups = folders.collate(groupSize) +// def tasks = [:] - groups.eachWithIndex { group, index -> - tasks["parallel_group_${index + 1}"] = { - stage("Parallel Group ${index + 1}") { - script { - group.each { testFolder -> - def folderName = testFolder.replaceAll('test/cypress/integration/', '').replaceAll('/', '') - folderName = folderName.replaceAll('[^a-zA-Z0-9_-]', '') // Sanitización de nombres +// groups.eachWithIndex { group, index -> +// tasks["parallel_group_${index + 1}"] = { +// stage("Parallel Group ${index + 1}") { +// script { +// group.each { testFolder -> +// def folderName = testFolder.replaceAll('test/cypress/integration/', '').replaceAll('/', '') +// folderName = folderName.replaceAll('[^a-zA-Z0-9_-]', '') // Sanitización de nombres - stage("Run ${folderName}") { - try { - env.CYPRESS_SPEC = "test/cypress/integration/${folderName}/**/*.spec.js" - sh "docker-compose -p ${env.NETWORK}_${folderName} -f docker-compose.e2e.yml up -d back" - sh "docker-compose -p ${env.NETWORK}_${folderName} -f docker-compose.e2e.yml up -d front" - sh "CYPRESS_SPEC=test/cypress/integration/${folderName}/**/*.spec.js docker-compose -p ${env.NETWORK}_${folderName} -f docker-compose.e2e.yml up e2e" - checkErrors(folderName) - } catch (Exception e) { - echo "Error en la ejecución de ${folderName}: ${e.message}" - currentBuild.result = 'UNSTABLE' - } finally { - sh "docker-compose -p ${env.NETWORK}_${folderName} -f docker-compose.e2e.yml down || true" - } - } - } - } - } - } - } +// stage("Run ${folderName}") { +// try { +// env.CYPRESS_SPEC = "test/cypress/integration/${folderName}/**/*.spec.js" +// sh "docker-compose -p ${env.NETWORK}_${folderName} -f docker-compose.e2e.yml up -d back" +// sh "docker-compose -p ${env.NETWORK}_${folderName} -f docker-compose.e2e.yml up -d front" +// sh "CYPRESS_SPEC=test/cypress/integration/${folderName}/**/*.spec.js docker-compose -p ${env.NETWORK}_${folderName} -f docker-compose.e2e.yml up e2e" +// checkErrors(folderName) +// } catch (Exception e) { +// echo "Error en la ejecución de ${folderName}: ${e.message}" +// currentBuild.result = 'UNSTABLE' +// } finally { +// sh "docker-compose -p ${env.NETWORK}_${folderName} -f docker-compose.e2e.yml down || true" +// } +// } +// } +// } +// } +// } +// } - parallel tasks -} +// parallel tasks +// } def checkErrors(String folderName){