diff --git a/Jenkinsfile b/Jenkinsfile index ab5e5c0dbc7945dc809eb9a28d18977fc9ff0d0b..119b4bddc298561d808dbe55876e80a08ca064fb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,12 +1,12 @@ pipeline { agent { node { - label 'jenkins-worker' + label 'jenkins-build-agent' } } environment { - BLUE_OCEAN_URL = "https://jenkins.ozg-sh.de/blue/organizations/jenkins/goofy/detail/${env.BRANCH_NAME}/${env.BUILD_NUMBER}/pipeline" + BLUE_OCEAN_URL = "https://jenkins.ozg-sh.de/job/goofy/job/${env.BRANCH_NAME}/${env.BUILD_NUMBER}/" RELEASE_REGEX = /\d+.\d+.\d+/ SNAPSHOT_REGEX = /\d+.\d+.\d+-SNAPSHOT/ FAILED_STAGE = "" @@ -54,36 +54,34 @@ pipeline { } stage('Client') { steps { - container("nodejs"){ - script { - FAILED_STAGE=env.STAGE_NAME + script { + FAILED_STAGE=env.STAGE_NAME - sh 'npm --version' - dir('goofy-client') { - sh 'echo "registry=https://nexus.ozg-sh.de/repository/npm-proxy" >> ~/.npmrc' - sh 'echo "_auth=amVua2luczpQaihzX0ZNNFU5ZC8=" >> ~/.npmrc' + sh 'npm --version' + dir('goofy-client') { + sh 'echo "registry=https://nexus.ozg-sh.de/repository/npm-proxy" >> ~/.npmrc' + sh 'echo "_auth=amVua2luczpQaihzX0ZNNFU5ZC8=" >> ~/.npmrc' - sh 'npm cache verify' - sh 'npm install --no-optional --legacy-peer-deps' + sh 'npm cache verify' + sh 'npm install --legacy-peer-deps' - if (env.BRANCH_NAME == 'release') { - sh 'npm run ci-prodBuild' - } - else { - sh 'npm run ci-build' - } + if (env.BRANCH_NAME == 'release') { + sh 'npm run ci-prodBuild' + } + else { + sh 'npm run ci-build' + } - sh 'npm run ci-test' + sh 'npm run ci-test' - try { - if (env.BRANCH_NAME == 'master') { - withSonarQubeEnv('sonarqube-ozg-sh'){ - sh 'npm run ci-sonar' - } + try { + if (env.BRANCH_NAME == 'master') { + withSonarQubeEnv('sonarqube-ozg-sh'){ + sh 'npm run ci-sonar' } - } catch (Exception e) { - unstable("SonarQube failed") - } + } + } catch (Exception e) { + unstable("SonarQube failed") } } } @@ -100,22 +98,20 @@ pipeline { FAILED_STAGE=env.STAGE_NAME IMAGE_TAG = generateImageTag() - container("maven-17"){ - configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { - sh 'mvn --version' - sh "mvn -s $MAVEN_SETTINGS -pl -goofy-client clean install spring-boot:build-image -Dspring-boot.build-image.imageName=docker.ozg-sh.de/goofy:${IMAGE_TAG} -Dspring-boot.build-image.publish -Dmaven.wagon.http.retryHandler.count=3" - - try { - if (env.BRANCH_NAME == 'master') { - dir('goofy-server'){ - withSonarQubeEnv('sonarqube-ozg-sh'){ - sh 'mvn -s $MAVEN_SETTINGS sonar:sonar' - } + configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { + sh 'mvn --version' + sh "mvn -s $MAVEN_SETTINGS -pl -goofy-client clean install spring-boot:build-image -Dspring-boot.build-image.imageName=docker.ozg-sh.de/goofy:${IMAGE_TAG} -Dspring-boot.build-image.publish -Dmaven.wagon.http.retryHandler.count=3" + + try { + if (env.BRANCH_NAME == 'master') { + dir('goofy-server'){ + withSonarQubeEnv('sonarqube-ozg-sh'){ + sh 'mvn -s $MAVEN_SETTINGS sonar:sonar' } - } - } catch (Exception e) { - unstable("SonarQube failed") - } + } + } + } catch (Exception e) { + unstable("SonarQube failed") } } } @@ -131,9 +127,8 @@ pipeline { script { FAILED_STAGE = env.STAGE_NAME E2E_FAILED = "" - } - container("k8s") { - configFileProvider([configFile(fileId: 'jenkins-kuby-kubeconfig', variable: 'KUBE_CONFIG')]) { + + configFileProvider([configFile(fileId: 'kubeconfig-old-dev-cluster', variable: 'KUBE_CONFIG')]) { sh 'mkdir ~/.kube' sh 'cp ${KUBE_CONFIG} ~/.kube/config' } @@ -142,7 +137,6 @@ pipeline { sh 'helm version' } - setAnsibleKubeConfig() } } stage('Deploy Maven Artifacts to Nexus') { @@ -156,10 +150,9 @@ pipeline { script { FAILED_STAGE = env.STAGE_NAME } - container('maven-17') { - configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { - sh 'mvn -s $MAVEN_SETTINGS -pl -goofy-client -DskipTests deploy' - } + + configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { + sh 'mvn -s $MAVEN_SETTINGS -pl -goofy-client -DskipTests deploy' } } } @@ -187,20 +180,18 @@ pipeline { stage('Test, build and deploy Helm Chart') { steps { - container('k8s') { - script { - FAILED_GOOFY_STAGE=env.STAGE_NAME - HELM_CHART_VERSION = generateHelmChartVersion() + script { + FAILED_GOOFY_STAGE=env.STAGE_NAME + HELM_CHART_VERSION = generateHelmChartVersion() - dir('src/main/helm') { - sh "helm lint -f test-values.yaml" + dir('src/main/helm') { + sh "helm lint -f test-values.yaml" - sh "helm unittest -f '../../test/helm/*.yaml' -v '../../test/unit-values.yaml' ." + sh "helm unittest -f '../../test/helm/*.yaml' -v '../../test/unit-values.yaml' ." - sh "helm package --version=${HELM_CHART_VERSION} ." + sh "helm package --version=${HELM_CHART_VERSION} ." - deployHelmChart(HELM_CHART_VERSION) - } + deployHelmChart(HELM_CHART_VERSION) } } } @@ -228,61 +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) + FAILED_STAGE = env.STAGE_NAME + dir('goofy-client') { + sh "npm run cypress:install" + } + } + } + } + stage('Run E2E-Tests') { + failFast false - startEnvironment(bezeichner, stageName, IMAGE_TAG, true, HELM_CHART_VERSION) + 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') + 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(!testResult) { - E2E_FAILED += "${stageName}, " - error("Fehler in Stage ${stageName}") + if (env.BRANCH_NAME != 'master') { + deleteKopStack(bezeichner, 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) + 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) + startEnvironment(bezeichner, stageName, IMAGE_TAG, false, HELM_CHART_VERSION, 'sh', dbPort) - def testResult = runTests(stageName, bezeichner, 'main-tests') + 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") + } + } } } } @@ -332,10 +340,10 @@ pipeline { Void deployHelmChart(String helmChartVersion) { withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]){ if (env.BRANCH_NAME == 'release') { - result = sh script: '''curl -u $USERNAME:$PASSWORD http://nexus.dev-tools:8081/service/rest/v1/components?repository=ozg-base-apps -F file=@goofy-'''+helmChartVersion+'''.tgz''', returnStdout: true + result = sh script: '''curl -u $USERNAME:$PASSWORD https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps -F file=@goofy-'''+helmChartVersion+'''.tgz''', returnStdout: true } else { - result = sh script: '''curl -u $USERNAME:$PASSWORD http://nexus.dev-tools:8081/service/rest/v1/components?repository=ozg-base-apps-snapshot -F file=@goofy-'''+helmChartVersion+'''.tgz''', returnStdout: true + result = sh script: '''curl -u $USERNAME:$PASSWORD https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps-snapshot -F file=@goofy-'''+helmChartVersion+'''.tgz''', returnStdout: true } if (result != '') { @@ -358,13 +366,11 @@ String generateHelmChartVersion() { } Void tagAndPushDockerImage(String newTag){ - container("docker") { - withCredentials([usernamePassword(credentialsId: 'jenkins-docker-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { - sh 'docker login docker.ozg-sh.de -u ${USER} -p ${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}" - sh "docker push docker.ozg-sh.de/goofy:${newTag}" - } + sh "docker tag docker.ozg-sh.de/goofy:${IMAGE_TAG} docker.ozg-sh.de/goofy:${newTag}" + sh "docker push docker.ozg-sh.de/goofy:${newTag}" } } @@ -378,7 +384,7 @@ String generateImageTag() { return imageTag } -Void startEnvironment(String bezeichner, String stage, String imageTag, Boolean isEa, String chartVersion) { +Void startEnvironment(String bezeichner, String stage, String imageTag, Boolean isEa, String chartVersion, String bundesland, dbPort) { setupAnsible(imageTag, stage, isEa, chartVersion) try { @@ -388,8 +394,10 @@ Void startEnvironment(String bezeichner, String stage, String imageTag, Boolean } rolloutKopStack(bezeichner, stage) - addKeycloakGroups(bezeichner, stage) - addKeycloakUser(bezeichner, stage) + addKeycloakGroups(bezeichner, stage, bundesland) + addKeycloakUser(bezeichner, stage, bundesland) + exposeDatenbank("${bundesland}-${bezeichner}-dev", dbPort) + exposeElasticSearch() } Void setupAnsible(String imageTag, String stage, Boolean isEa, String chartVersion) { @@ -409,11 +417,9 @@ Void setupAnsible(String imageTag, String stage, Boolean isEa, String chartVersi } Void setAnsibleKubeConfig() { - container("ansible") { - configFileProvider([configFile(fileId: 'jenkins-kuby-kubeconfig', variable: 'KUBE_CONFIG')]) { - sh 'mkdir ~/.kube' - sh 'cp ${KUBE_CONFIG} ~/.kube/config' - } + configFileProvider([configFile(fileId: 'kubeconfig-old-dev-cluster', variable: 'KUBE_CONFIG')]) { + sh 'mkdir ~/.kube' + sh 'cp ${KUBE_CONFIG} ~/.kube/config' } } @@ -514,91 +520,83 @@ Void setPlutoDatabasePassword(String stage) { } Void rolloutKopStack(String bezeichner, String stage) { - container("ansible") { - dir("${stage}/provisioning") { - def ansibleVars = """{"k8s_context":"ozg-dev", \ - "kop_env":"dev", \ - "kop_bezeichner":${bezeichner}, \ - "kop_displayname":${bezeichner}, \ - "kop_postfach_api_key":"", \ - "install_afm_adapter":false, \ - "install_fs_adapter":false, \ - "external_db_enabled":false, \ - "disable_update":true}""" + dir("${stage}/provisioning") { + def ansibleVars = """{"k8s_context":"ozg-dev", \ + "kop_env":"dev", \ + "kop_bezeichner":${bezeichner}, \ + "kop_displayname":${bezeichner}, \ + "kop_postfach_api_key":"", \ + "install_afm_adapter":false, \ + "install_fs_adapter":false, \ + "external_db_enabled":false, \ + "disable_update":true}""" - if (env.BRANCH_NAME == 'release') { - sh "ansible-playbook playbook/rollout.yml --extra-vars '${ansibleVars}'" - } - else { - sh "ansible-playbook playbooks/rollout.yml --extra-vars '${ansibleVars}'" - } + if (env.BRANCH_NAME == 'release') { + sh "ansible-playbook playbook/rollout.yml --extra-vars '${ansibleVars}'" + } + else { + sh "ansible-playbook playbooks/rollout.yml --extra-vars '${ansibleVars}'" } } } -Void addKeycloakGroups(String bezeichner, String stage) { - container("ansible") { - def groupFiles = sh (script: 'ls goofy-client/apps/goofy-e2e/src/fixtures/group', returnStdout: true) +Void addKeycloakGroups(String bezeichner, String stage, String bundesland) { + def groupFiles = sh (script: 'ls goofy-client/apps/goofy-e2e/src/fixtures/group', returnStdout: true) - groupFiles.split("\\n").each { group -> - def groupJson = sh (script: "cat goofy-client/apps/goofy-e2e/src/fixtures/group/${group}", returnStdout: true) + groupFiles.split("\\n").each { group -> + def groupJson = sh (script: "cat goofy-client/apps/goofy-e2e/src/fixtures/group/${group}", returnStdout: true) - def ansibleVars = """{"k8s_context":"ozg-dev", \ - "kop_env":"dev", \ - "keycloak_realm":"sh-${bezeichner}-dev", \ - "group":${groupJson} + def ansibleVars = """{"k8s_context":"ozg-dev", \ + "kop_env":"dev", \ + "keycloak_realm":"${bundesland}-${bezeichner}-dev", \ + "group":${groupJson} }""" - dir("${stage}/provisioning") { - if (env.BRANCH_NAME == 'release') { - sh "ansible-playbook playbook/add-keycloak-group.yml --extra-vars '${ansibleVars}'" - } - else { - sh "ansible-playbook playbooks/add-keycloak-group.yml --extra-vars '${ansibleVars}'" - } + dir("${stage}/provisioning") { + if (env.BRANCH_NAME == 'release') { + sh "ansible-playbook playbook/add-keycloak-group.yml --extra-vars '${ansibleVars}'" } - } - } + else { + sh "ansible-playbook playbooks/add-keycloak-group.yml --extra-vars '${ansibleVars}'" + } + } + } } -Void addKeycloakUser(String bezeichner, String stage) { - container("ansible") { - def userFiles = sh (script: 'ls goofy-client/apps/goofy-e2e/src/fixtures/user', returnStdout: true) +Void addKeycloakUser(String bezeichner, String stage, String bundesland) { + def userFiles = sh (script: 'ls goofy-client/apps/goofy-e2e/src/fixtures/user', returnStdout: true) - userFiles.split("\\n").each { user -> - def userJson = sh (script: "cat goofy-client/apps/goofy-e2e/src/fixtures/user/${user}", returnStdout: true) + userFiles.split("\\n").each { user -> + def userJson = sh (script: "cat goofy-client/apps/goofy-e2e/src/fixtures/user/${user}", returnStdout: true) - def ansibleVars = """{"k8s_context":"ozg-dev", \ - "kop_env":"dev", \ - "keycloak_realm":"sh-${bezeichner}-dev", \ - "user":${userJson} - }""" + def ansibleVars = """{"k8s_context":"ozg-dev", \ + "kop_env":"dev", \ + "keycloak_realm":"${bundesland}-${bezeichner}-dev", \ + "user":${userJson} + }""" - dir("${stage}/provisioning") { - if (env.BRANCH_NAME == 'release') { - sh "ansible-playbook playbook/add-keycloak-user.yml --extra-vars '${ansibleVars}'" - } - else { - sh "ansible-playbook playbooks/add-keycloak-user.yml --extra-vars '${ansibleVars}'" - } + dir("${stage}/provisioning") { + if (env.BRANCH_NAME == 'release') { + sh "ansible-playbook playbook/add-keycloak-user.yml --extra-vars '${ansibleVars}'" + } + else { + sh "ansible-playbook playbooks/add-keycloak-user.yml --extra-vars '${ansibleVars}'" } } } } Void deleteKopStack(String bezeichner, String stage) { - container("ansible") { - dir("${stage}/provisioning") { - def ansibleVars = """{"k8s_context":"ozg-dev", \ - "kop_env":"dev", \ - "kop_bezeichner":${bezeichner}}""" + dir("${stage}/provisioning") { + def ansibleVars = """{"k8s_context":"ozg-dev", \ + "kop_env":"dev", \ + "kop_bezeichner":${bezeichner}}""" - if (env.BRANCH_NAME == 'release') { - sh "ansible-playbook playbook/delete-commune.yml --extra-vars '${ansibleVars}'" - } - else { - sh "ansible-playbook playbooks/delete-commune.yml --extra-vars '${ansibleVars}'" - } + if (env.BRANCH_NAME == 'release') { + sh "ansible-playbook playbook/delete-commune.yml --extra-vars '${ansibleVars}'" + } + else { + sh "ansible-playbook playbooks/delete-commune.yml --extra-vars '${ansibleVars}'" } } } @@ -616,22 +614,20 @@ Void publishE2ETestResult(String reportFolder, String reportName) { ) } -String runTests(String stageName, String bezeichner, String reportFolder) { - def configFile = generateCypressConfig(stageName, bezeichner, reportFolder) +String runTests(String stageName, String bezeichner, String reportFolder, String bundesland, dbPort) { + def configFile = generateCypressConfig(stageName, bezeichner, reportFolder, bundesland, dbPort) - container("cypress") { - try { - dir("goofy-client") { - sh "npm run cypress:version" - sh "npm run cypress:ci-run --CONFIG_FILE=${configFile} --REPORT_FOLDER=${reportFolder}" + try { + dir("goofy-client") { + sh "npm run cypress:version" + sh "npm run cypress:ci-run --CONFIG_FILE=${configFile} --REPORT_FOLDER=${reportFolder}" - return true - } - } catch (Exception e) { - sh "ls -l /root/.npm/_logs/*-debug.log" - sh "cat /root/.npm/_logs/*-debug.log" - return false + return true } + } catch (Exception e) { + sh "ls -l /root/.npm/_logs/*-debug.log" + sh "cat /root/.npm/_logs/*-debug.log" + return false } } @@ -658,16 +654,18 @@ String cutBranchNameForKeycloakRealm(String branchName, String stageName) { return branchName } -String generateCypressConfig(String stage, String bezeichner, String testFolder) { - def namespace = "sh-${bezeichner}-dev" +String generateCypressConfig(String stage, String bezeichner, String testFolder, String bundesland, dbPort) { + def namespace = "${bundesland}-${bezeichner}-dev" def configName = "cypress-ci-"+testFolder+".json" + + def url = "dev.ozg-sh.de" dir('goofy-client/apps/goofy-e2e/'){ def config = readJSON file: 'cypress-ci.json' def elasticsearchEnv = getElasticsearchEnv(namespace) - config.baseUrl = "https://${bezeichner}.dev.ozg-sh.de" as String - config.env.dbUrl = "mongodb+srv://pluto-database-user:XnHhfznNWg65NNd@pluto-database-svc.${namespace}.svc.cluster.local/admin?ssl=false" as String + config.baseUrl = "https://${bezeichner}.${url}" as String + config.env.dbUrl = "mongodb://pluto-database-user:XnHhfznNWg65NNd@localhost:${dbPort}/admin?ssl=false&directConnection=true" as String config.env.keycloakRealm = namespace as String config.env.keycloakClient = namespace + "-goofy" as String config.env.sabineUuid = getKeycloakUuid(namespace, "sabine") as String @@ -679,7 +677,7 @@ String generateCypressConfig(String stage, String bezeichner, String testFolder) environment = config.env environment.put("search", elasticsearchEnv) - environment.put("userManager", getUserManagerEnv(namespace)); + environment.put("userManager", getUserManagerEnv(namespace, dbPort)); writeJSON file: configName, json: config @@ -689,19 +687,17 @@ String generateCypressConfig(String stage, String bezeichner, String testFolder) return configName } -String getUserManagerEnv(namespace){ +String getUserManagerEnv(namespace, dbPort){ def secret = getSecrect(namespace, 'pluto-database-admin-user-manager-database-user'); def secretPassword = decodeString(secret.password); return readJSON(text: """{ - "dbUrl":"mongodb+srv://user-manager-database-user:${secretPassword}@pluto-database-svc.${namespace}.svc.cluster.local/admin?ssl=false", \ + "dbUrl":"mongodb://user-manager-database-user:${secretPassword}@localhost:${dbPort}/admin?ssl=false&directConnection=true", \ "database":"user-manager-database"}"""); } def getSecrect(namespace, secretName){ - container("k8s"){ - script { - return readJSON ( text: sh (script: "kubectl get secret ${secretName} -n ${namespace} -o jsonpath={.data}", returnStdout: true)) - } + script { + return readJSON ( text: sh (script: "kubectl get secret ${secretName} -n ${namespace} -o jsonpath={.data}", returnStdout: true)) } } @@ -722,7 +718,7 @@ String getKeycloakUuid(realm, userName) { } String getKeycloakAccessToken() { - withCredentials([usernamePassword(credentialsId: 'keycloak-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { + withCredentials([usernamePassword(credentialsId: 'keycloak-old-dev-cluster', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { def token = readJSON text: sh (script: 'curl -d "client_id=admin-cli" -d "username=$USER" -d "password=$PASSWORD" -d "grant_type=password" "https://sso.dev.ozg-sh.de/realms/master/protocol/openid-connect/token"', returnStdout: true) return token.access_token @@ -760,12 +756,10 @@ Void initHelmRepo() { } def getElasticsearchSecret(namespace) { - container("k8s"){ - script { - def elasticsearch = readJSON ( text: sh (script: "kubectl get secret elasticsearch-credentials -n ${namespace} -o jsonpath={.data}", returnStdout: true)) + script { + def elasticsearch = readJSON ( text: sh (script: "kubectl get secret elasticsearch-credentials -n ${namespace} -o jsonpath={.data}", returnStdout: true)) - return elasticsearch - } + return elasticsearch } } @@ -776,7 +770,7 @@ String getElasticsearchEnv(namespace) { "user":"${decodeString(elasticsearchSecret.username)}", \ "password":"${decodeString(elasticsearchSecret.password)}", \ "index":"${decodeString(elasticsearchSecret.index)}", \ - "url":"${decodeString(elasticsearchSecret.uris)}"}""" + "url":"https://localhost:9200"}""" return readJSON ( text: env) } @@ -817,3 +811,14 @@ Void pushNewProvisioningVersion(String environment) { } } } + +Void exposeElasticSearch() { + portStatus = sh (script: "lsof -i -P -n | grep LISTEN | grep :9200", returnStatus: true) as Integer + if(portStatus == 1) { + sh "kubectl port-forward ozg-search-cluster-es-ozg-search-0 9200:9200 -n elastic-system &" + } +} + +Void exposeDatenbank(String namespace, port) { + sh "kubectl port-forward pluto-database-0 ${port}:27017 -n ${namespace} &" +} \ No newline at end of file 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",