From f9e6f121cc5655ab4c57f038177093b718d33c0a Mon Sep 17 00:00:00 2001
From: zhenzhen <zhenzhen.liu@mgm-tp.com>
Date: Fri, 29 Nov 2024 12:00:31 +0100
Subject: [PATCH] OZG-6923 add commitId to feature branch image tag/helm
 version

---
 Jenkinsfile | 39 +++++++++++++++++----------------------
 1 file changed, 17 insertions(+), 22 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 519a8b7..85e8282 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -107,7 +107,7 @@ pipeline {
             steps {
                 script {
                     FAILED_STAGE=env.STAGE_NAME
-                    IMAGE_TAG_BAYERN_ID_PROXY = generateImageTag('pom.xml')
+                    IMAGE_TAG_BAYERN_ID_PROXY = buildVersionName('pom.xml')
 
                     tagAndPushDockerImage('bayernid-proxy', IMAGE_TAG_BAYERN_ID_PROXY)
 
@@ -127,7 +127,7 @@ pipeline {
                 script {
                     FAILED_STAGE=env.STAGE_NAME
 
-                    HELM_CHART_VERSION_BAYERN_ID_PROXY = generateHelmChartVersion("pom.xml")
+                    HELM_CHART_VERSION_BAYERN_ID_PROXY = buildVersionName("pom.xml")
 
                     sh "./run_helm_test.sh"
 
@@ -178,7 +178,7 @@ pipeline {
         stage ('Deploy SBOM to DependencyTrack') {
             steps {
                 script {
-                    IMAGE_TAG = generateImageTag('pom.xml')
+                    IMAGE_TAG = buildVersionName('pom.xml')
 
                     configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
                         withCredentials([string(credentialsId: 'dependency-track-api-key', variable: 'API_KEY')]) {
@@ -253,17 +253,22 @@ void deployHelmChart(String helmChartName, String helmChartVersion) {
     }
 }
 
-String generateHelmChartVersion(String pomFile) {
-    def chartVersion = getPomVersion(pomFile)
-
-    if (env.BRANCH_NAME == 'main') {
-        chartVersion += "-${env.GIT_COMMIT.take(7)}"
-    }
-    else if (env.BRANCH_NAME != 'release') {
-        chartVersion += "-${env.BRANCH_NAME}"
+String validateBranchName(branchName) {
+    int maxLength = 30
+    if (branchName.length() > maxLength) {
+        String originalBranchName = branchName
+        branchName = branchName.substring(0, maxLength)
+        echo "WARNING: Branch name '${originalBranchName}' exceeded ${maxLength} characters. " +
+             "It has been truncated to '${branchName}' for deployment purposes."
     }
+    return branchName
+}
 
-    return chartVersion.replaceAll("_", "-")
+String buildVersionName(String pomFile) {
+    if (isReleaseBranch()) {
+        return getPomVersion(pomFile)
+    }
+    return "${getPomVersion(pomFile)}-${validateBranchName(env.BRANCH_NAME)}-${env.GIT_COMMIT.take(7)}".replaceAll("_", "-")
 }
 
 Void tagAndPushDockerImage(String imageName, String newTag){
@@ -281,16 +286,6 @@ String getPomVersion(String pomFile){
     return pom.version
 }
 
-String generateImageTag(String pomFile) {
-    def imageTag = "${env.BRANCH_NAME}-${getPomVersion(pomFile)}"
-
-    if (env.BRANCH_NAME == 'main') {
-        imageTag += "-${env.GIT_COMMIT.take(7)}"
-    }
-
-    return imageTag
-}
-
 String generateBranchPRJarTag(String pomFile) {
     def jarTag = getPomVersion(pomFile).replace("SNAPSHOT", "${env.BRANCH_NAME}-SNAPSHOT")
 
-- 
GitLab