diff --git a/alfa-client/apps/alfa-e2e/Jenkinsfile b/alfa-client/apps/alfa-e2e/Jenkinsfile index 4bcfb93a754d678ebdecd7f15832df66360ebcb2..7d5d23524fb56c50e0b0899ec292c24872b09886 100644 --- a/alfa-client/apps/alfa-e2e/Jenkinsfile +++ b/alfa-client/apps/alfa-e2e/Jenkinsfile @@ -218,11 +218,12 @@ pipeline { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { script { def bezeichner = env.EA_BEZEICHNER - def dbPort = 27018 - forwardServices(generateNamespace(bezeichner), dbPort) + Integer mongoDbPort = forwardMongoDbPort(generateNamespace(bezeichner)) - runTests(bezeichner, 'einheitlicher-ansprechpartner', 'user-ea', dbPort, env.STAGE_NAME) + runTests(bezeichner, 'einheitlicher-ansprechpartner', 'user-ea', mongoDbPort, env.STAGE_NAME) + + stopForwardMongoDbPort(generateNamespace(bezeichner)) } } } @@ -242,17 +243,18 @@ pipeline { stage('E2E-Main') { when { - expression { SKIP_RUN } + expression { !SKIP_RUN } } steps { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { script { def bezeichner = env.MAIN_BEZEICHNER - def dbPort = 27019 - forwardServices(generateNamespace(bezeichner), dbPort) + Integer mongoDbPort = forwardMongoDbPort(generateNamespace(bezeichner)) - runTests(bezeichner, 'main-tests', 'user-main', dbPort, env.STAGE_NAME) + runTests(bezeichner, 'main-tests', 'user-main', mongoDbPort, env.STAGE_NAME) + + stopForwardMongoDbPort(generateNamespace(bezeichner)) } } } @@ -772,16 +774,39 @@ Map getElasticsearchEnv(String namespace) { ] } -Void forwardServices(String namespace, Integer dbPort) { +Void forwardMongoDbPort(String namespace) { try { - forwardDatenbank(namespace, dbPort) + def minPort = 20000 + def portRange = 20000 + //def dbPort = "${Math.abs(new Random().nextInt(portRange+1))+minPort}" as Integer + def dbPort = Math.abs(new Random().nextInt(portRange+1))+minPort + + echo "Forwarding MongoDB Port to local port ${dbPort}" + + def pidFile = generateMongoDbPortForwardPidFile(namespace) + + sh "kubectl port-forward ozg-mongodb-0 ${dbPort}:27017 -n ${namespace} & echo \$! > ${pidFile}" + + return dbPort } catch (Exception e) { - echo "forwardServices Exception: ${e}" + echo "forwardMongoDbPort Exception: ${e}" error("Error forwarding service") } } +Void stopForwardMongoDbPort(String namespace) { + echo "Removing forwarding MongoDB Port to local port for ${namespace}" + def pidFile = generateMongoDbPortForwardPidFile(namespace) + dir('alfa-client/apps/alfa-e2e/src/jenkins-build-files') { + sh "./kill-pid-by-filename.sh ${pidFile}" + } +} + +Void generateMongoDbPortForwardPidFile(String namespace) { + return "/tmp/pid_file_mongodb_port_forward_${namespace}.pid" +} + Void forwardElasticSearch() { if(!isElasticSearchForwarded()) { sh "kubectl port-forward ozg-search-cluster-es-ozg-search-0 9200:9200 -n elastic-system &" @@ -792,10 +817,6 @@ Boolean isElasticSearchForwarded() { return sh (script: "lsof -i -P -n | grep LISTEN | grep :9200", returnStatus: true) == env.SH_SUCCESS_STATUS_CODE as Integer } -Void forwardDatenbank(String namespace, port) { - sh "kubectl port-forward ozg-mongodb-0 ${port}:27017 -n ${namespace} &" -} - String generateNamespace(String bezeichner) { return "${env.BUNDESLAND}-${bezeichner}-dev" }