diff --git a/Jenkinsfile b/Jenkinsfile index a2821930c10fc2a340deb528109a7d82eed0136e..929a390fa653ee6cf4cd1cd28dce3ce8b45f8639 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -219,63 +219,78 @@ pipeline { } } stage('E2E') { - failFast false + stages { - parallel { - stage('E2E-EA') { + stage('Install cypress') { steps { script { - def stageName = env.STAGE_NAME - def bezeichner = generateBezeichner(stageName) - def dbPort = 27018 + FAILED_STAGE = env.STAGE_NAME + dir('goofy-client') { + sh "npm cypress:install" + } + } + } + } + stage('Run E2E-Tests') { + failFast false - startEnvironment(bezeichner, stageName, IMAGE_TAG, true, HELM_CHART_VERSION, 'sh', dbPort) + parallel { + stage('E2E-EA') { + steps { + script { + def stageName = env.STAGE_NAME + def bezeichner = generateBezeichner(stageName) + def dbPort = 27018 - def testResult = runTests(stageName, bezeichner, 'einheitlicher-ansprechpartner', 'sh', dbPort) + startEnvironment(bezeichner, stageName, IMAGE_TAG, true, HELM_CHART_VERSION, 'sh', dbPort) - if (env.BRANCH_NAME != 'master') { - deleteKopStack(bezeichner, stageName) - } + def testResult = runTests(stageName, bezeichner, 'einheitlicher-ansprechpartner', 'sh', dbPort) + + if (env.BRANCH_NAME != 'master') { + deleteKopStack(bezeichner, stageName) + } - if(!testResult) { - E2E_FAILED += "${stageName}, " - error("Fehler in Stage ${stageName}") + if(!testResult) { + E2E_FAILED += "${stageName}, " + error("Fehler in Stage ${stageName}") + } + } } - } - } - post { - always { - script { - publishE2ETestResult("einheitlicher-ansprechpartner", "Goofy E2E-Tests EA") + post { + always { + script { + publishE2ETestResult("einheitlicher-ansprechpartner", "Goofy E2E-Tests EA") + } + } } } - } - } - stage('E2E-main') { - steps { - script { - def stageName = env.STAGE_NAME - def bezeichner = generateBezeichner(stageName) - def dbPort = 27019 + stage('E2E-main') { + steps { + script { + def stageName = env.STAGE_NAME + def bezeichner = generateBezeichner(stageName) + def dbPort = 27019 - startEnvironment(bezeichner, stageName, IMAGE_TAG, false, HELM_CHART_VERSION, 'sh', dbPort) + startEnvironment(bezeichner, stageName, IMAGE_TAG, false, HELM_CHART_VERSION, 'sh', dbPort) - def testResult = runTests(stageName, bezeichner, 'main-tests', 'sh', dbPort) + def testResult = runTests(stageName, bezeichner, 'main-tests', 'sh', dbPort) - if (env.BRANCH_NAME != 'master') { - deleteKopStack(bezeichner, stageName) - } + if (env.BRANCH_NAME != 'master') { + deleteKopStack(bezeichner, stageName) + } - if(!testResult) { - E2E_FAILED += "${stageName}, " - error("Fehler in Stage ${stageName}") + if(!testResult) { + E2E_FAILED += "${stageName}, " + error("Fehler in Stage ${stageName}") + } + } } - } - } - post { - always { - script { - publishE2ETestResult("main-tests", "Goofy E2E-Tests main") + post { + always { + script { + publishE2ETestResult("main-tests", "Goofy E2E-Tests main") + } + } } } } @@ -351,7 +366,7 @@ String generateHelmChartVersion() { } Void tagAndPushDockerImage(String newTag){ - withCredentials([usernamePassword(credentialsId: 'jenkins-docker-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { + withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}' sh "docker tag docker.ozg-sh.de/goofy:${IMAGE_TAG} docker.ozg-sh.de/goofy:${newTag}" diff --git a/goofy-client/package.json b/goofy-client/package.json index db5b0249431c351f84ba9523cea408f219883d17..84b7b253795023b04dc412aade3710f56577d1d6 100644 --- a/goofy-client/package.json +++ b/goofy-client/package.json @@ -35,6 +35,7 @@ "favicon": "real-favicon generate favicon/faviconDescription.json favicon/faviconData.json src/favicon", "cypress:run": "npx cypress run --project apps/goofy-e2e", "cypress:version": "npx cypress version", + "cypress:install": "npx cypress install", "cypress:open": "npx cypress open --project apps/goofy-e2e", "cypress:ci-run": "npm run cypress:delete-old-reports --REPORT_FOLDER=$npm_config_REPORT_FOLDER ; npm run cypress:run -- --config-file ./$npm_config_CONFIG_FILE ; test=$(echo \"$?\") ; npm run cypress:pre-merge --REPORT_FOLDER=$npm_config_REPORT_FOLDER ; npm run cypress:generate-report --REPORT_FOLDER=$npm_config_REPORT_FOLDER ; exit $test", "cypress:delete-old-reports": "REPORT_FOLDER=$npm_config_REPORT_FOLDER node apps/goofy-e2e/src/support/delete-old-reports.ts",