diff --git a/Jenkinsfile b/Jenkinsfile index f2ad4ec0355e4022d7ba6bb4cc388ae48ee01604..691142c386bd539e9be6e8debbd0a49deb011376 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -116,7 +116,7 @@ pipeline { script { catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { dir('alfa-client') { - IMAGE_TAG = generateImageTag() + IMAGE_TAG = buildVersionName() withNPM(npmrcConfig: 'npm-nexus-auth') { sh 'npm run ci-build-alfa-client-container' @@ -159,7 +159,7 @@ pipeline { steps { script { FAILED_STAGE=env.STAGE_NAME - IMAGE_TAG = generateImageTag() + IMAGE_TAG = buildVersionName() configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { sh 'mvn --version' @@ -225,7 +225,7 @@ pipeline { steps { script { FAILED_STAGE=env.STAGE_NAME - HELM_CHART_VERSION = generateHelmChartVersion() + HELM_CHART_VERSION = buildVersionName() sh "./run_helm_test.sh" @@ -242,9 +242,9 @@ pipeline { stage('Test, build and deploy Alfa-Client Helm Chart') { steps { script { + FAILED_STAGE=env.STAGE_NAME + HELM_CHART_VERSION = buildVersionName() dir('alfa-client') { - FAILED_STAGE=env.STAGE_NAME - HELM_CHART_VERSION = generateHelmChartVersion() sh "./run_helm_test.sh" @@ -295,7 +295,7 @@ pipeline { stage ('Deploy SBOM to DependencyTrack') { steps { script { - IMAGE_TAG = generateImageTag() + IMAGE_TAG = buildVersionName() configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { withCredentials([string(credentialsId: 'dependency-track-api-key', variable: 'API_KEY')]) { @@ -356,20 +356,27 @@ Void deployHelmChart(String helmChartVersion, String app ) { } } -String generateHelmChartVersion() { - def chartVersion = "${VERSION}" - - if (isMasterBranch()) { - chartVersion += getCommitHash() +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." } - else if (isBarrierefreiheitBranch()) { - chartVersion += "-barrierefreiheit${getCommitHash()}" + return branchName +} + +String buildVersionName() { + + if (isReleaseBranch()) { + return getRootPomVersion() } - else if (!isReleaseBranch()) { - chartVersion += "-${env.BRANCH_NAME}" + if (isBarrierefreiheitBranch()) { + return "${getRootPomVersion()}-barrierefreiheit${validateBranchName(env.BRANCH_NAME)}${getCommitHash()}".replaceAll("_", "-") } - return chartVersion.replaceAll("_", "-") + return "${getRootPomVersion()}-${validateBranchName(env.BRANCH_NAME)}${getCommitHash()}".replaceAll("_", "-") } Void tagAndPushDockerImage(String newTag){ @@ -381,16 +388,6 @@ Void tagAndPushDockerImage(String newTag){ } } -String generateImageTag() { - def imageTag = "${env.BRANCH_NAME}-${VERSION}" - - if (isMasterBranch() || isBarrierefreiheitBranch()) { - imageTag += getCommitHash() - } - - return imageTag -} - Void cloneGitopsRepo() { withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { sh 'git clone https://${USER}:${TOKEN}@git.ozg-sh.de/ozgcloud-devops/gitops.git' diff --git a/Jenkinsfile.admin b/Jenkinsfile.admin index b3a8d5e1e283f2633ea082c115d0fd61f3190086..328d865ae486af46a901005eda56df55e13dbc0f 100644 --- a/Jenkinsfile.admin +++ b/Jenkinsfile.admin @@ -89,7 +89,7 @@ pipeline { steps { script { FAILED_STAGE=env.STAGE_NAME - IMAGE_TAG = generateImageTag() + IMAGE_TAG = buildVersionName() tagAndPushDockerImage(IMAGE_TAG) @@ -107,7 +107,7 @@ pipeline { steps { script { FAILED_STAGE=env.STAGE_NAME - HELM_CHART_VERSION = generateHelmChartVersion() + HELM_CHART_VERSION = buildVersionName() dir('alfa-client/apps/admin') { sh "./run_helm_test.sh" @@ -172,14 +172,22 @@ Boolean isReleaseBranch() { return env.BRANCH_NAME == 'release-admin' } -String generateImageTag() { - def imageTag = "${env.BRANCH_NAME}-${VERSION}" - - if (isMasterBranch()) { - imageTag += "-${env.GIT_COMMIT.take(7)}" +def 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 imageTag +String buildVersionName() { + if (isReleaseBranch()) { + return "${VERSION}" + } + return "${VERSION}-${validateBranchName(env.BRANCH_NAME)}-${env.GIT_COMMIT.take(7)}".replaceAll("_", "-") } Void cloneGitopsRepo() { @@ -273,18 +281,6 @@ Void deployHelmChart(String helmChartVersion) { } } } -String generateHelmChartVersion() { - def chartVersion = "${VERSION}" - - if (isMasterBranch()) { - chartVersion += "-${env.GIT_COMMIT.take(7)}" - } - else if (!isReleaseBranch()) { - chartVersion += "-${env.BRANCH_NAME}" - } - - return chartVersion.replaceAll("_", "-") -} Boolean isMasterBranch() { return env.BRANCH_NAME == 'master'