diff --git a/Jenkinsfile b/Jenkinsfile
index 929023b75883833d9e99e2cf8ad00650d20d223a..474fc1a4071aa68e0f77cd589664c76b5a040b3c 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -144,17 +144,22 @@ void deployHelmChart(String helmChartName, String helmChartVersion) {
     }
 }
 
-String generateHelmChartBuildVersion() {
-    def chartVersion = getHelmChartVersion()
-
-    if (isMasterBranch()) {
-        chartVersion += "-${env.GIT_COMMIT.take(7)}"
-    }
-    else if (!isReleaseBranch()) {
-        chartVersion += "-${env.BRANCH_NAME}"
+String validateBranchName(branchName) {
+    int maxLength = 18
+    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 generateHelmChartBuildVersion() {
+    if (isReleaseBranch()) {
+        return getHelmChartVersion().replaceAll("_", "-")
+    }
+    return "${getHelmChartVersion()}-${validateBranchName(env.BRANCH_NAME)}-${env.GIT_COMMIT.take(7)}".replaceAll("_", "-")
 }