diff --git a/Jenkinsfile b/Jenkinsfile index edbc090e7df94a61838ca119fac3f2c88d4a9084..7f2ad699bcb47b7fe0ddfd00649e4b803bbb71dc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -373,15 +373,29 @@ String getPomVersion(String pomFile){ } String generateImageTag() { - def imageTag = "${env.BRANCH_NAME}-${getPomVersion('pom.xml')}" + if (isReleaseBranch()) { + return getPomVersion() + } + + return "${getPomVersion()}-${validateBranchName(env.BRANCH_NAME)}${getCommitHash()}".replaceAll("_", "-") +} - 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) { def pom = readMavenPom file: filePath return pom.parent.version