refactor: refs #6695 improve parallel test execution logic in Jenkinsfile
gitea/salix-front/pipeline/pr-dev Build queued...
Details
gitea/salix-front/pipeline/pr-dev Build queued...
Details
This commit is contained in:
parent
1faa5b74df
commit
872318a00c
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue