From 9c5534fbe3fa7485e2ba86a2b1915d0aefb734db Mon Sep 17 00:00:00 2001
From: Martin <git@mail.de>
Date: Wed, 12 Mar 2025 19:00:34 +0100
Subject: [PATCH] OZG-7922 adjust image tag generation

---
 Jenkinsfile | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 186f623..0e19e18 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -80,7 +80,7 @@ pipeline {
           steps {
                 script {
                     FAILED_STAGE=env.STAGE_NAME
-                    JAR_TAG = getPomVersion('pom.xml').replace("SNAPSHOT", "${env.BRANCH_NAME}-SNAPSHOT")
+                    JAR_TAG = getPomVersion().replace("SNAPSHOT", "${env.BRANCH_NAME}-SNAPSHOT")
                 }
                 configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
                     sh "mvn -s $MAVEN_SETTINGS versions:set -DnewVersion=${JAR_TAG} -DprocessAllModules=true"
@@ -166,7 +166,7 @@ pipeline {
             steps {
                 script {
                     FAILED_STAGE=env.STAGE_NAME
-                    HELM_CHART_VERSION = generateHelmChartVersion()
+                    HELM_CHART_VERSION = generateImageTag();
 
                     testAndDeployKeycloakHelmChart(HELM_CHART_VERSION)
                 }
@@ -177,7 +177,7 @@ pipeline {
             steps {
                 script {
                     FAILED_STAGE=env.STAGE_NAME
-                    HELM_CHART_VERSION = generateHelmChartVersion()
+                    HELM_CHART_VERSION = generateImageTag()
 
                     testAndDeployElasticsearchHelmChart(HELM_CHART_VERSION)
                 }
@@ -259,19 +259,6 @@ String getHelmRepoUrl(){
     return "https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps-snapshot"
 }
 
-String generateHelmChartVersion() {
-    def chartVersion = getPomVersion('pom.xml')
-
-    if (isMainBranch()) {
-        chartVersion += "-${env.GIT_COMMIT.take(7)}"
-    }
-    else if (!isReleaseBranch()) {
-        chartVersion += "-${env.BRANCH_NAME}"
-    }
-
-    return chartVersion.replaceAll('_', '-')
-}
-
 Boolean isMainBranch() {
     return env.BRANCH_NAME == 'main'
 }
@@ -370,20 +357,33 @@ Void tagAndPushDockerImage(String imageName, String newTag){
     }
 }
 
-String getPomVersion(String pomFile){
-    def pom = readMavenPom file: pomFile
+String generateImageTag() {
+	if (isReleaseBranch()) {
+        return getPomVersion()
+    }
+
+	return "${getPomVersion()}-${validateBranchName(env.BRANCH_NAME)}${getCommitHash()}".replaceAll("_", "-")
+}
+
+String getPomVersion(){
+    def pom = readMavenPom file: 'pom.xml'
 
     return pom.version
 }
 
-String generateImageTag() {
-    def imageTag = "${env.BRANCH_NAME}-${getPomVersion('pom.xml')}"
-
-    if (env.BRANCH_NAME == 'main') {
-        imageTag += "-${env.GIT_COMMIT.take(7)}"
+String validateBranchName(branchName) {
+    int maxLength = 20
+    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 imageTag
+String getCommitHash() {
+    return "-${env.GIT_COMMIT.take(7)}";
 }
 
 String getParentPomVersion(String filePath) {
-- 
GitLab