refactor: refs #6695 improve parallel test execution logic in Jenkinsfile
gitea/salix-front/pipeline/pr-dev Build queued... Details

This commit is contained in:
Alex Moreno 2025-02-13 09:38:09 +01:00
parent 1faa5b74df
commit 872318a00c
1 changed files with 33 additions and 33 deletions

66
Jenkinsfile vendored
View File

@ -186,43 +186,43 @@ def cleanDockerE2E() {
def runTestsInParallel(int numParallelGroups) { def runTestsInParallel(int numParallelGroups) {
def folders = sh(script: "ls -d test/cypress/integration/*/ || echo ''", returnStdout: true).trim().split('\n').findAll { it } def folders = sh(script: "ls -d test/cypress/integration/*/ || echo ''", returnStdout: true).trim().split('\n').findAll { it }
// if (folders.isEmpty()) { if (folders.isEmpty()) {
// echo "No se encontraron carpetas de pruebas." echo "No se encontraron carpetas de pruebas."
// return return
// } }
// // Divide las carpetas en grupos para paralelizar // Divide las carpetas en grupos para paralelizar
// def groupSize = Math.ceil(folders.size() / numParallelGroups).toInteger() def groupSize = Math.ceil((folders.size() as double) / numParallelGroups).toInteger()
// def groups = folders.collate(groupSize) def groups = folders.collate(groupSize)
// def tasks = [:] def tasks = [:]
// groups.eachWithIndex { group, index -> groups.eachWithIndex { group, index ->
// tasks["parallel_group_${index + 1}"] = { tasks["parallel_group_${index + 1}"] = {
// script { script {
// group.each { testFolder -> group.each { testFolder ->
// def folderName = testFolder.replaceAll('test/cypress/integration/', '').replaceAll('/', '') def folderName = testFolder.replaceAll('test/cypress/integration/', '').replaceAll('/', '')
// folderName = folderName.replaceAll('[^a-zA-Z0-9_-]', '') // Sanitización de nombres folderName = folderName.replaceAll('[^a-zA-Z0-9_-]', '') // Sanitización de nombres
// stage("Run ${folderName}") { stage("Run ${folderName}") {
// try { try {
// env.CYPRESS_SPEC = "test/cypress/integration/${folderName}/**/*.spec.js" 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 back"
// sh "docker-compose -p ${env.NETWORK}_${folderName} -f docker-compose.e2e.yml up -d front" 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" sh "CYPRESS_SPEC=test/cypress/integration/${folderName}/**/*.spec.js docker-compose -p ${env.NETWORK}_${folderName} -f docker-compose.e2e.yml up e2e"
// checkErrors(folderName) checkErrors(folderName)
// } catch (Exception e) { } catch (Exception e) {
// echo "Error en la ejecución de ${folderName}: ${e.message}" echo "Error en la ejecución de ${folderName}: ${e.message}"
// currentBuild.result = 'UNSTABLE' currentBuild.result = 'UNSTABLE'
// } finally { } finally {
// sh "docker-compose -p ${env.NETWORK}_${folderName} -f docker-compose.e2e.yml down || true" sh "docker-compose -p ${env.NETWORK}_${folderName} -f docker-compose.e2e.yml down || true"
// } }
// } }
// } }
// } }
// } }
// } }
// parallel tasks parallel tasks
} }