diff --git a/Jenkinsfile b/Jenkinsfile index 7dd860a81a48a27128e09f6e3878869e497d0b0f..abb3d5b78b38d4c0e64790f1017298b6d59a00e8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -20,157 +20,164 @@ pipeline { } stages { - stage('Check Version') { - steps { - script { - FAILED_STAGE = env.STAGE_NAME - def rootPom = readMavenPom file: 'pom.xml' - def rootVersion = rootPom.version +// stage('Check Version') { +// steps { +// script { +// FAILED_STAGE = env.STAGE_NAME +// def rootPom = readMavenPom file: 'pom.xml' +// def rootVersion = rootPom.version - def serverPom = readMavenPom file: 'goofy-server/pom.xml' - def serverVersion = serverPom.parent.version +// def serverPom = readMavenPom file: 'goofy-server/pom.xml' +// def serverVersion = serverPom.parent.version - def clientPom = readMavenPom file: 'goofy-client/pom.xml' - def clientVersion = clientPom.parent.version +// def clientPom = readMavenPom file: 'goofy-client/pom.xml' +// def clientVersion = clientPom.parent.version - if(env.BRANCH_NAME == 'release'){ - if ( !(rootVersion ==~ RELEASE_REGEX) || !(serverVersion ==~ RELEASE_REGEX) || !(clientVersion ==~ RELEASE_REGEX)) { - error("Keine Release Version für Branch ${env.BRANCH_NAME}.") - } - } else { - if ( !(rootVersion ==~ SNAPSHOT_REGEX) || !(serverVersion ==~ SNAPSHOT_REGEX) || !(clientVersion ==~ SNAPSHOT_REGEX)) { - error("Keine Snapshot Version für Branch ${env.BRANCH_NAME}.") - } - } +// if(env.BRANCH_NAME == 'release'){ +// if ( !(rootVersion ==~ RELEASE_REGEX) || !(serverVersion ==~ RELEASE_REGEX) || !(clientVersion ==~ RELEASE_REGEX)) { +// error("Keine Release Version für Branch ${env.BRANCH_NAME}.") +// } +// } else { +// if ( !(rootVersion ==~ SNAPSHOT_REGEX) || !(serverVersion ==~ SNAPSHOT_REGEX) || !(clientVersion ==~ SNAPSHOT_REGEX)) { +// error("Keine Snapshot Version für Branch ${env.BRANCH_NAME}.") +// } +// } - if( !(rootVersion == serverVersion && rootVersion == clientVersion)){ - error("Versionen sind nicht identisch") - } - } - } - } - stage('Client') { - steps { - container("nodejs"){ - script { - FAILED_STAGE=env.STAGE_NAME +// if( !(rootVersion == serverVersion && rootVersion == clientVersion)){ +// error("Versionen sind nicht identisch") +// } +// } +// } +// } +// stage('Client') { +// steps { +// container("nodejs"){ +// script { +// FAILED_STAGE=env.STAGE_NAME - sh 'npm --version' - dir('goofy-client') { - sh 'echo "registry=http://nexus.ozg-sh.de/repository/npm-proxy" >> ~/.npmrc' - sh 'echo "_auth=amVua2luczpQaihzX0ZNNFU5ZC8=" >> ~/.npmrc' +// sh 'npm --version' +// dir('goofy-client') { +// sh 'echo "registry=http://nexus.ozg-sh.de/repository/npm-proxy" >> ~/.npmrc' +// sh 'echo "_auth=amVua2luczpQaihzX0ZNNFU5ZC8=" >> ~/.npmrc' - sh 'npm install --no-optional' +// sh 'npm install --no-optional' - 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' - } - } - } catch (Exception e) { - unstable("SonarQube failed") - } - } - } - } - } -// post { -// always{ -// junit testResults: 'goofy-client/test-report.xml', skipPublishingChecks: true -// } -// } - } +// try { +// if (env.BRANCH_NAME == 'master') { +// withSonarQubeEnv('sonarqube-ozg-sh'){ +// sh 'npm run ci-sonar' +// } +// } +// } catch (Exception e) { +// unstable("SonarQube failed") +// } +// } +// } +// } +// } +// // post { +// // always{ +// // junit testResults: 'goofy-client/test-report.xml', skipPublishingChecks: true +// // } +// // } +// } - stage('Server') { - steps { - script { - FAILED_STAGE=env.STAGE_NAME - } - 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 -Dmaven.wagon.http.retryHandler.count=3' - } +// stage('Server') { +// steps { +// script { +// FAILED_STAGE=env.STAGE_NAME +// } +// 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 -Dmaven.wagon.http.retryHandler.count=3' +// } - script { - try { - if (env.BRANCH_NAME == 'master') { - dir('goofy-server'){ - withSonarQubeEnv('sonarqube-ozg-sh'){ - sh 'mvn sonar:sonar' - } - } - } - } catch (Exception e) { - unstable("SonarQube failed") - } - } - } - } - post { - always{ - junit testResults: '**/target/surefire-reports/*.xml', skipPublishingChecks: true - } - } - } +// script { +// try { +// if (env.BRANCH_NAME == 'master') { +// dir('goofy-server'){ +// withSonarQubeEnv('sonarqube-ozg-sh'){ +// sh 'mvn sonar:sonar' +// } +// } +// } +// } catch (Exception e) { +// unstable("SonarQube failed") +// } +// } +// } +// } +// post { +// always{ +// junit testResults: '**/target/surefire-reports/*.xml', skipPublishingChecks: true +// } +// } +// } - stage('Push Docker image') { - steps { - script { - FAILED_STAGE=env.STAGE_NAME - def pom = readMavenPom file: 'pom.xml' - def version = pom.version +// stage('Push Docker image') { +// steps { +// script { +// FAILED_STAGE=env.STAGE_NAME +// def pom = readMavenPom file: 'pom.xml' +// def version = pom.version - container("docker") { - withCredentials([usernamePassword(credentialsId: 'jenkins-docker-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { - sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}' +// container("docker") { +// withCredentials([usernamePassword(credentialsId: 'jenkins-docker-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { +// sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}' - sh "docker tag docker.ozg-sh.de/goofy:build-latest docker.ozg-sh.de/goofy:${env.BRANCH_NAME}-${version}" - sh "docker push docker.ozg-sh.de/goofy:${env.BRANCH_NAME}-${version}" +// sh "docker tag docker.ozg-sh.de/goofy:build-latest docker.ozg-sh.de/goofy:${env.BRANCH_NAME}-${version}" +// sh "docker push docker.ozg-sh.de/goofy:${env.BRANCH_NAME}-${version}" - if (env.BRANCH_NAME == 'master') { - sh 'docker tag docker.ozg-sh.de/goofy:build-latest docker.ozg-sh.de/goofy:e2e-test' - sh 'docker push docker.ozg-sh.de/goofy:e2e-test' - } - } - } - } - } - } +// if (env.BRANCH_NAME == 'master') { +// sh 'docker tag docker.ozg-sh.de/goofy:build-latest docker.ozg-sh.de/goofy:e2e-test' +// sh 'docker push docker.ozg-sh.de/goofy:e2e-test' +// } +// } +// } +// } +// } +// } stage('E2E-Tests(EA)') { when { - branch 'master' + branch 'ozg-1784' } steps { script { FAILED_STAGE=env.STAGE_NAME } - container("kubectl") { - sh 'kubectl rollout restart deployment/goofy -n sh-e2e-dev' - sh 'kubectl rollout status deployment/goofy -n sh-e2e-dev' + container("k8s") { + def branchName = env.BRANCH_NAME.replaceAll(/[^a-zA-Z0-9]+/, "").toLowerCase() + def namespace = 'e2e-${branchName}-dev' - sh 'kubectl rollout restart deployment/pluto -n sh-e2e-dev' - sh 'kubectl rollout status deployment/pluto -n sh-e2e-dev' - } + echo ${namespace} - container("cypress") { - dir('goofy-client') { - sh 'npm run cypress:version' - sh 'npm run cypress:ci-ea-run --BASE_URL=https://e2e.dev.ozg-sh.de'//TODO: durch eine dynamische url ersetzen + withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { + sh 'helm upgrade --install --create-namespace goofy goofy --version 0.3.0-SNAPSHOT -f values.yaml --namespace ${namespace} --repo https://nexus.ozg-sh.de/repository/ozg-base-apps-snapshot --username ${USER} --password ${PASSWORD}' } } + + // container("cypress") { + // dir('goofy-client') { + // sh 'npm run cypress:version' + // sh 'npm run cypress:ci-ea-run --BASE_URL=https://e2e.dev.ozg-sh.de'//TODO: durch eine dynamische url ersetzen + // } + // } + + // container("k8s"){ + // sh 'helm uninstall ' + // } } post { always { @@ -186,118 +193,118 @@ pipeline { } } - stage('E2E-Tests') { - when { - branch 'master' - } - steps { - script { - FAILED_STAGE=env.STAGE_NAME - } + // stage('E2E-Tests') { + // when { + // branch 'master' + // } + // steps { + // script { + // FAILED_STAGE=env.STAGE_NAME + // } - container("kubectl") { - sh 'kubectl rollout restart deployment/goofy -n sh-e2e-dev' - sh 'kubectl rollout status deployment/goofy -n sh-e2e-dev' + // container("kubectl") { + // sh 'kubectl rollout restart deployment/goofy -n sh-e2e-dev' + // sh 'kubectl rollout status deployment/goofy -n sh-e2e-dev' - sh 'kubectl rollout restart deployment/pluto -n sh-e2e-dev' - sh 'kubectl rollout status deployment/pluto -n sh-e2e-dev' - } + // sh 'kubectl rollout restart deployment/pluto -n sh-e2e-dev' + // sh 'kubectl rollout status deployment/pluto -n sh-e2e-dev' + // } - container("cypress") { - dir('goofy-client') { - sh 'npm run cypress:version' - sh 'npm run cypress:ci-run' - } - } - } - post { - always { - publishHTML (target: [ - allowMissing: false, - alwaysLinkToLastBuild: false, - keepAll: true, - reportDir: 'goofy-client/apps/goofy-e2e/reports', - reportFiles: 'report.html', - reportName: "Goofy E2E-Tests" - ]) - } - } - } + // container("cypress") { + // dir('goofy-client') { + // sh 'npm run cypress:version' + // sh 'npm run cypress:ci-run' + // } + // } + // } + // post { + // always { + // publishHTML (target: [ + // allowMissing: false, + // alwaysLinkToLastBuild: false, + // keepAll: true, + // reportDir: 'goofy-client/apps/goofy-e2e/reports', + // reportFiles: 'report.html', + // reportName: "Goofy E2E-Tests" + // ]) + // } + // } + // } - stage('Deploy Maven Artifacts to Nexus') { - when { - anyOf { - branch 'master' - branch 'release' - } - } - steps { - 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' - } - } - } - } + // stage('Deploy Maven Artifacts to Nexus') { + // when { + // anyOf { + // branch 'master' + // branch 'release' + // } + // } + // steps { + // 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' + // } + // } + // } + // } - stage('Deploy Goofy') { - when { - anyOf { - branch 'master' - branch 'release' - } - } + // stage('Deploy Goofy') { + // when { + // anyOf { + // branch 'master' + // branch 'release' + // } + // } - steps { - script { - FAILED_STAGE = env.STAGE_NAME - } - container("docker") { - script { - withCredentials([usernamePassword(credentialsId: 'jenkins-docker-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { - sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}' + // steps { + // script { + // FAILED_STAGE = env.STAGE_NAME + // } + // container("docker") { + // script { + // withCredentials([usernamePassword(credentialsId: 'jenkins-docker-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { + // sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}' - if (env.BRANCH_NAME == 'release') { - sh 'docker tag docker.ozg-sh.de/goofy:build-latest docker.ozg-sh.de/goofy:latest' - sh 'docker push docker.ozg-sh.de/goofy:latest' - } + // if (env.BRANCH_NAME == 'release') { + // sh 'docker tag docker.ozg-sh.de/goofy:build-latest docker.ozg-sh.de/goofy:latest' + // sh 'docker push docker.ozg-sh.de/goofy:latest' + // } - if (env.BRANCH_NAME == 'master') { - sh 'docker tag docker.ozg-sh.de/goofy:build-latest docker.ozg-sh.de/goofy:snapshot-latest' - sh 'docker push docker.ozg-sh.de/goofy:snapshot-latest' - } - } - } - } + // if (env.BRANCH_NAME == 'master') { + // sh 'docker tag docker.ozg-sh.de/goofy:build-latest docker.ozg-sh.de/goofy:snapshot-latest' + // sh 'docker push docker.ozg-sh.de/goofy:snapshot-latest' + // } + // } + // } + // } - container("kubectl"){ - script { - if (env.BRANCH_NAME == 'release') { - sh 'kubectl rollout restart deployment/goofy -n sh-kiel-test' - sh 'kubectl rollout status deployment/goofy -n sh-kiel-test' - sh 'kubectl rollout restart deployment/goofy -n sh-sl-test' - sh 'kubectl rollout status deployment/goofy -n sh-sl-test' - } + // container("kubectl"){ + // script { + // if (env.BRANCH_NAME == 'release') { + // sh 'kubectl rollout restart deployment/goofy -n sh-kiel-test' + // sh 'kubectl rollout status deployment/goofy -n sh-kiel-test' + // sh 'kubectl rollout restart deployment/goofy -n sh-sl-test' + // sh 'kubectl rollout status deployment/goofy -n sh-sl-test' + // } - if (env.BRANCH_NAME == 'master') { - sh 'kubectl rollout restart deployment/goofy -n sh-kiel-dev' - sh 'kubectl rollout status deployment/goofy -n sh-kiel-dev' - } - } - } - } - } - } - post { - failure { - script { - if (env.BRANCH_NAME == 'master') { - slackSend(color: "danger", message: "Goofy: Build Failed. Stage: ${FAILED_STAGE} Build-ID: <${BLUE_OCEAN_URL}|${env.BUILD_NUMBER}>") - } - } - } + // if (env.BRANCH_NAME == 'master') { + // sh 'kubectl rollout restart deployment/goofy -n sh-kiel-dev' + // sh 'kubectl rollout status deployment/goofy -n sh-kiel-dev' + // } + // } + // } + // } + // } } + // post { + // failure { + // script { + // if (env.BRANCH_NAME == 'master') { + // slackSend(color: "danger", message: "Goofy: Build Failed. Stage: ${FAILED_STAGE} Build-ID: <${BLUE_OCEAN_URL}|${env.BUILD_NUMBER}>") + // } + // } + // } + // } } \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/deployment-values/goofy/ea-values.yaml b/goofy-client/apps/goofy-e2e/deployment-values/goofy/ea-values.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fcc9266a4b962e1bb2fe5319ba165ef8903de3cb --- /dev/null +++ b/goofy-client/apps/goofy-e2e/deployment-values/goofy/ea-values.yaml @@ -0,0 +1,5 @@ +sso: + role_einheitlicher_ansprechpartner: true +env: + sprintProfiles: 'oc,dev,e2e' +plutoName: pluto \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/deployment-values/goofy/values.yaml b/goofy-client/apps/goofy-e2e/deployment-values/goofy/values.yaml new file mode 100644 index 0000000000000000000000000000000000000000..239670c833f679c20c5852ced1fa3c7dd770092b --- /dev/null +++ b/goofy-client/apps/goofy-e2e/deployment-values/goofy/values.yaml @@ -0,0 +1,10 @@ +sso: + apiPassword: + serverUrl: 'https://sso.dev.ozg-sh.de/auth' +env: + springProfiles: 'oc, dev, e2e' +image: + tag: e2e-test +plutoName: pluto +replicaCount: '1' +scrapeMetricsDisabled: false diff --git a/goofy-client/apps/goofy-e2e/deployment-values/pluto/ea-values.yaml b/goofy-client/apps/goofy-e2e/deployment-values/pluto/ea-values.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2ecefeb2070bcecbfa2b7f92490fbbbc14e2fb6c --- /dev/null +++ b/goofy-client/apps/goofy-e2e/deployment-values/pluto/ea-values.yaml @@ -0,0 +1,23 @@ +env: + aktenzeichen: + enabled: true + value: de.itvsh.ozg.pluto.vorgang.AktenzeichenProviderEA + springProfiles: 'oc,dev,e2e' +image: + tag: snapshot-latest +kop: + vorgang: + filter: + defaultBehaviour: SHOW_ALL +kopProxyApi: + apikey: null + realm: null + scheduler: + enabled: true + fixedDelay: 300000 + url: null +replicaCount: 1 +replicaCountDatabase: 1 +osipostfach: + httpproxy: + enabled: true \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/deployment-values/pluto/values.yaml b/goofy-client/apps/goofy-e2e/deployment-values/pluto/values.yaml new file mode 100644 index 0000000000000000000000000000000000000000..25957f523b01a9123ce0adb2d817bdb26cc215ad --- /dev/null +++ b/goofy-client/apps/goofy-e2e/deployment-values/pluto/values.yaml @@ -0,0 +1,16 @@ +env: + aktenzeichen: + enabled: false + value: de.itvsh.ozg.pluto.vorgang.AktenzeichenProviderEA + springProfiles: 'oc, dev, e2e' +image: + tag: e2e-test +replicaCount: '1' +replicaCountDatabase: '1' +customDatabaseCredentials: false +osipostfach: + httpproxy: + auth: + required: false + enabled: false +scrapeMetricsDisabled: true \ No newline at end of file