From a85c2d3c21511b89ae007bd8ceaf146df0cefaa4 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Tue, 11 Jul 2023 17:21:36 +0200
Subject: [PATCH] start development 1.11.0

---
 Jenkinsfile                    | 370 ++++++++++++++++-----------------
 pom.xml                        |   2 +-
 user-manager-interface/pom.xml |   2 +-
 user-manager-server/pom.xml    |   2 +-
 4 files changed, 188 insertions(+), 188 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 5e663c6e..99a57d17 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -24,192 +24,192 @@ pipeline {
         buildDiscarder(logRotator(numToKeepStr: '5'))
     }
 
-//    stages {
-//        stage('Check Version') {
-//            steps {
-//                script {
-//                    FAILED_STAGE = env.STAGE_NAME
-//                    def rootVersion = getPomVersion('pom.xml')
-//                    def userManagerVersion = getPomVersion('user-manager-server/pom.xml')
-//                    def interfaceVersion = getPomVersion('user-manager-interface/pom.xml')
-//
-//                    if(env.BRANCH_NAME == 'release'){
-//                        if ( !(rootVersion ==~ RELEASE_REGEX) || !(userManagerVersion ==~ RELEASE_REGEX) || !(interfaceVersion ==~ RELEASE_REGEX)) {
-//                            error("Keine Release Version für Branch ${env.BRANCH_NAME}.")
-//                        }
-//                    } else {
-//                        if ( !(rootVersion ==~ SNAPSHOT_REGEX) || !(userManagerVersion ==~ SNAPSHOT_REGEX) || !(interfaceVersion ==~ SNAPSHOT_REGEX)) {
-//                            error("Keine Snapshot Version für Branch ${env.BRANCH_NAME}.")
-//                        }
-//                    }
-//
-//                    if( !(rootVersion == userManagerVersion && rootVersion == interfaceVersion )){
-//                        error("Versionen sind nicht identisch")
-//                    }
-//                }
-//            }
-//        }
-//
-//        stage('Build UserManager GRPC') {
-//			steps {
-//				script {
-//				    FAILED_STAGE=env.STAGE_NAME
-//				}
-//
-//    		    configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
-//					sh './mvnw -pl user-manager-interface -s $MAVEN_SETTINGS clean deploy -Dmaven.wagon.http.retryHandler.count=3'
-//				}
-//			}
-//         }
-//
-//         stage('Build UserManager') {
-//			steps {
-//				script {
-//				    FAILED_STAGE=env.STAGE_NAME
-//
-//				    configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
-//				        sh './mvnw -pl user-manager-server -s $MAVEN_SETTINGS clean deploy -Dmaven.wagon.http.retryHandler.count=3'
-//				    	junit testResults: '**/target/surefire-reports/*.xml', skipPublishingChecks: true
-//				    }
-//				}
-//			}
-//         }
-//
-//         stage('Build native container image') {
-//			steps {
-//				script {
-//				    FAILED_STAGE=env.STAGE_NAME
-//
-//					withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) {
-//						configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
-//    					    sh './mvnw -pl user-manager-server -s $MAVEN_SETTINGS clean verify -Pnative -Dquarkus.container-image.registry=docker.ozg-sh.de -Dquarkus.container-image.username=${USER} -Dquarkus.container-image.password=${PASSWORD} -Dquarkus.container-image.push=true -Dquarkus.container-image.build=true -Dquarkus.native.remote-container-build=true -Dmaven.wagon.http.retryHandler.count=3'
-//						}
-//					}
-//				}
-//			}
-//		}
-//
-//        stage ('OWASP Dependency-Check Vulnerabilities') {
-//            steps {
-//                    dependencyCheck additionalArguments: '''
-//                        -o "./"
-//                        -s "./"
-//                        -f "ALL"
-//                        -d /dependency-check-data
-//                        --suppression dependency-check-supressions.xml
-//                        --disableKnownExploited
-//                        --disableArchive
-//                        --prettyPrint''', odcInstallation: 'dependency-check-owasp'
-//
-//                    dependencyCheckPublisher pattern: 'dependency-check-report.xml'
-//            }
-//        }
-//
-//        stage('Sonar Checks') {
-//            when {
-//                branch 'master'
-//            }
-//        	steps {
-//        	    script {
-//                    FAILED_STAGE=env.STAGE_NAME
-//
-//                    configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
-//                        dir('user-manager-server') {
-//	            		    try {
-//		                        withSonarQubeEnv('sonarqube-ozg-sh'){
-//                                    sh "./mvnw -s $MAVEN_SETTINGS package sonar:sonar -Dsonar.coverage.jacoco.xmlReportPaths=${env.WORKSPACE}/user-manager-server/target/jacoco-report/jacoco.xml"
-//		                        }
-//		                    } catch (Exception e) {
-//	                            unstable("SonarQube failed")
-//	                        }
-//                        }
-//                	}
-//                }
-//        	}
-//        }
-//
-//		stage('Tag and Push Docker image') {
-//            steps {
-//                script {
-//                    FAILED_STAGE = env.STAGE_NAME
-//    	            IMAGE_TAG = generateImageTag()
-//
-//                    tagAndPushDockerImage(IMAGE_TAG)
-//
-//                    if (env.BRANCH_NAME == 'master') {
-//                        tagAndPushDockerImage('snapshot-latest')
-//                    }
-//                    else if (env.BRANCH_NAME == 'release') {
-//                        tagAndPushDockerImage('latest')
-//                    }
-//                }
-//            }
-//        }
-//
-//        stage('Test, build and deploy Helm Chart') {
-//            steps {
-//                script {
-//                    FAILED_STAGE=env.STAGE_NAME
-//                    HELM_CHART_VERSION = generateHelmChartVersion()
-//
-//                    dir('src/main/helm') {
-//                        sh "helm lint -f ../../test/unit-values.yaml"
-//
-//                        sh "helm unittest -f '../../test/helm/*.yaml' -v '../../test/unit-values.yaml' ."
-//
-//                        sh "helm package --version=${HELM_CHART_VERSION} ."
-//
-//                        deployHelmChart(HELM_CHART_VERSION)
-//                    }
-//                }
-//            }
-//        }
-//
-//        stage('Rollout Dev UserManager') {
-//            when {
-//                branch 'master'
-//            }
-//            steps {
-//                script {
-//                    FAILED_STAGE = env.STAGE_NAME
-//
-//                    cloneGitopsRepo()
-//
-//                    setNewDevUserManagerVersion()
-//
-//                    pushDevGitopsRepo()
-//                }
-//            }
-//        }
-//
-//        stage('Trigger Test rollout') {
-//            when {
-//                branch 'release'
-//            }
-//
-//            steps {
-//                script {
-//                    FAILED_STAGE = env.STAGE_NAME
-//
-//                    cloneGitopsRepo()
-//
-//                    setNewTestUserManagerVersion()
-//
-//                    pushTestGitopsRepo()
-//                }
-//            }
-//        }
-//    }
+    stages {
+        stage('Check Version') {
+            steps {
+                script {
+                    FAILED_STAGE = env.STAGE_NAME
+                    def rootVersion = getPomVersion('pom.xml')
+                    def userManagerVersion = getPomVersion('user-manager-server/pom.xml')
+                    def interfaceVersion = getPomVersion('user-manager-interface/pom.xml')
+
+                    if(env.BRANCH_NAME == 'release'){
+                        if ( !(rootVersion ==~ RELEASE_REGEX) || !(userManagerVersion ==~ RELEASE_REGEX) || !(interfaceVersion ==~ RELEASE_REGEX)) {
+                            error("Keine Release Version für Branch ${env.BRANCH_NAME}.")
+                        }
+                    } else {
+                        if ( !(rootVersion ==~ SNAPSHOT_REGEX) || !(userManagerVersion ==~ SNAPSHOT_REGEX) || !(interfaceVersion ==~ SNAPSHOT_REGEX)) {
+                            error("Keine Snapshot Version für Branch ${env.BRANCH_NAME}.")
+                        }
+                    }
+
+                    if( !(rootVersion == userManagerVersion && rootVersion == interfaceVersion )){
+                        error("Versionen sind nicht identisch")
+                    }
+                }
+            }
+        }
+
+        stage('Build UserManager GRPC') {
+			steps {
+				script {
+				    FAILED_STAGE=env.STAGE_NAME
+				}
+
+    		    configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
+					sh './mvnw -pl user-manager-interface -s $MAVEN_SETTINGS clean deploy -Dmaven.wagon.http.retryHandler.count=3'
+				}
+			}
+         }
+
+         stage('Build UserManager') {
+			steps {
+				script {
+				    FAILED_STAGE=env.STAGE_NAME
+
+				    configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
+				        sh './mvnw -pl user-manager-server -s $MAVEN_SETTINGS clean deploy -Dmaven.wagon.http.retryHandler.count=3'
+				    	junit testResults: '**/target/surefire-reports/*.xml', skipPublishingChecks: true
+				    }
+				}
+			}
+         }
+
+         stage('Build native container image') {
+			steps {
+				script {
+				    FAILED_STAGE=env.STAGE_NAME
+
+					withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) {
+						configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
+    					    sh './mvnw -pl user-manager-server -s $MAVEN_SETTINGS clean verify -Pnative -Dquarkus.container-image.registry=docker.ozg-sh.de -Dquarkus.container-image.username=${USER} -Dquarkus.container-image.password=${PASSWORD} -Dquarkus.container-image.push=true -Dquarkus.container-image.build=true -Dquarkus.native.remote-container-build=true -Dmaven.wagon.http.retryHandler.count=3'
+						}
+					}
+				}
+			}
+		}
+
+        stage ('OWASP Dependency-Check Vulnerabilities') {
+            steps {
+                    dependencyCheck additionalArguments: '''
+                        -o "./"
+                        -s "./"
+                        -f "ALL"
+                        -d /dependency-check-data
+                        --suppression dependency-check-supressions.xml
+                        --disableKnownExploited
+                        --disableArchive
+                        --prettyPrint''', odcInstallation: 'dependency-check-owasp'
+
+                    dependencyCheckPublisher pattern: 'dependency-check-report.xml'
+            }
+        }
+
+        stage('Sonar Checks') {
+            when {
+                branch 'master'
+            }
+        	steps {
+        	    script {
+                    FAILED_STAGE=env.STAGE_NAME
+
+                    configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
+                        dir('user-manager-server') {
+	            		    try {
+		                        withSonarQubeEnv('sonarqube-ozg-sh'){
+                                    sh "./mvnw -s $MAVEN_SETTINGS package sonar:sonar -Dsonar.coverage.jacoco.xmlReportPaths=${env.WORKSPACE}/user-manager-server/target/jacoco-report/jacoco.xml"
+		                        }
+		                    } catch (Exception e) {
+	                            unstable("SonarQube failed")
+	                        }
+                        }
+                	}
+                }
+        	}
+        }
+
+		stage('Tag and Push Docker image') {
+            steps {
+                script {
+                    FAILED_STAGE = env.STAGE_NAME
+    	            IMAGE_TAG = generateImageTag()
+
+                    tagAndPushDockerImage(IMAGE_TAG)
+
+                    if (env.BRANCH_NAME == 'master') {
+                        tagAndPushDockerImage('snapshot-latest')
+                    }
+                    else if (env.BRANCH_NAME == 'release') {
+                        tagAndPushDockerImage('latest')
+                    }
+                }
+            }
+        }
+
+        stage('Test, build and deploy Helm Chart') {
+            steps {
+                script {
+                    FAILED_STAGE=env.STAGE_NAME
+                    HELM_CHART_VERSION = generateHelmChartVersion()
+
+                    dir('src/main/helm') {
+                        sh "helm lint -f ../../test/unit-values.yaml"
+
+                        sh "helm unittest -f '../../test/helm/*.yaml' -v '../../test/unit-values.yaml' ."
+
+                        sh "helm package --version=${HELM_CHART_VERSION} ."
+
+                        deployHelmChart(HELM_CHART_VERSION)
+                    }
+                }
+            }
+        }
+
+        stage('Rollout Dev UserManager') {
+            when {
+                branch 'master'
+            }
+            steps {
+                script {
+                    FAILED_STAGE = env.STAGE_NAME
+
+                    cloneGitopsRepo()
+
+                    setNewDevUserManagerVersion()
+
+                    pushDevGitopsRepo()
+                }
+            }
+        }
+
+        stage('Trigger Test rollout') {
+            when {
+                branch 'release'
+            }
+
+            steps {
+                script {
+                    FAILED_STAGE = env.STAGE_NAME
+
+                    cloneGitopsRepo()
+
+                    setNewTestUserManagerVersion()
+
+                    pushTestGitopsRepo()
+                }
+            }
+        }
+    }
     
-//    post {
-//        failure {
-//            script {
-//                if (env.BRANCH_NAME == 'master' || env.BRANCH_NAME == 'release') {
-//                    sendFailureMessage()
-//                }
-//            }
-//        }
-//    }
+    post {
+        failure {
+            script {
+                if (env.BRANCH_NAME == 'master' || env.BRANCH_NAME == 'release') {
+                    sendFailureMessage()
+                }
+            }
+        }
+    }
 }
 
 Void deployHelmChart(String helmChartVersion) {       
diff --git a/pom.xml b/pom.xml
index 88c2b919..d6c49622 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>de.itvsh.kop</groupId>
 	<artifactId>user-manager</artifactId>
-	<version>1.10.0</version>
+	<version>1.11.0-SNAPSHOT</version>
 
 	<name>User Manager Parent</name>
 	<packaging>pom</packaging>
diff --git a/user-manager-interface/pom.xml b/user-manager-interface/pom.xml
index aedd2977..bf585810 100644
--- a/user-manager-interface/pom.xml
+++ b/user-manager-interface/pom.xml
@@ -36,7 +36,7 @@
 
 	<groupId>de.itvsh.kop.user</groupId>
 	<artifactId>user-manager-interface</artifactId>
-	<version>1.10.0</version>
+	<version>1.11.0-SNAPSHOT</version>
 
 	<name>UserManager Interface</name>
 	<description>gRPC Interface for User Manager</description>
diff --git a/user-manager-server/pom.xml b/user-manager-server/pom.xml
index 3d50745e..902aebbc 100644
--- a/user-manager-server/pom.xml
+++ b/user-manager-server/pom.xml
@@ -36,7 +36,7 @@
 
 	<groupId>de.itvsh.kop.user</groupId>
 	<artifactId>user-manager-server</artifactId>
-	<version>1.10.0</version>
+	<version>1.11.0-SNAPSHOT</version>
 	<name>User Manager</name>
 
 	<properties>
-- 
GitLab