diff --git a/Jenkinsfile b/Jenkinsfile index 1043f508790123449723158c165010dac2c64cb7..0e4e0632ef1aea97a77350911e194e42f76cb401 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,8 @@ pipeline { RELEASE_REGEX = /\d+.\d+.\d+/ SNAPSHOT_REGEX = /\d+.\d+.\d+-SNAPSHOT/ FAILED_STAGE = "" - + SH_SUCCESS_STATUS_CODE = 0 + //The container runtime (e.g. docker) that is used to do an image based build. If this is set then a container build is always done. QUARKUS_NATIVE_CONTAINER_RUNTIME = "docker" QUARKUS_CONTAINER_IMAGE_NAME = "user-manager" @@ -156,16 +157,16 @@ pipeline { script { FAILED_STAGE = env.STAGE_NAME - checkoutGitopsRepo() + cloneGitopsRepo() - setNewGitopsVersion('dev') + setNewDevUserManagerVersion() - pushNewGitopsVersion('dev') + pushDevGitopsRepo() } } } - stage('Trigger Test | Stage rollout') { + stage('Trigger Test rollout') { when { branch 'release' } @@ -174,11 +175,11 @@ pipeline { script { FAILED_STAGE = env.STAGE_NAME - checkoutGitopsRepo() + cloneGitopsRepo() - setNewGitopsVersion('test') + setNewTestUserManagerVersion() - pushNewGitopsVersion('test') + pushTestGitopsRepo() } } } @@ -246,6 +247,14 @@ String getElementAccessToken() { } } +Void setNewDevUserManagerVersion() { + setNewGitopsVersion('dev') +} + +Void setNewTestUserManagerVersion() { + setNewGitopsVersion('test') +} + Void setNewGitopsVersion(String environment) { dir("gitops") { def envFile = "${environment}/application/values/user-manager-values.yaml" @@ -259,29 +268,51 @@ Void setNewGitopsVersion(String environment) { } } -Void checkoutGitopsRepo() { +Void configGit() { + final email = "jenkins@ozg-sh.de" + final name = "jenkins" + + dir("gitops") { + sh "git config user.email '${email}'" + sh "git config user.name '${name}'" + } +} + +Void cloneGitopsRepo() { withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { sh 'git clone https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/gitops.git' } + + configGit() +} + +Void pushDevGitopsRepo(){ + pushNewGitopsVersion('dev') +} + +Void pushTestGitopsRepo(){ + pushNewGitopsVersion('test') } Void pushNewGitopsVersion(String environment) { dir('gitops') { - if (sh (script: "git status | grep '${environment}/application/values/user-manager-values.yaml'", returnStatus: true) == 1) { + if (!hasUserManagerValuesFileChanged(environment)) { return } withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { sh "git add ${environment}/application/values/user-manager-values.yaml" - sh 'git config user.email "jenkins@ozg-sh.de"' - sh 'git config user.name "jenkins"' sh "git commit -m 'jenkins rollout ${environment} user-manager version ${IMAGE_TAG}'" sh 'git push https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/gitops.git' } } } +Boolean hasUserManagerValuesFileChanged(String environment) { + return sh (script: "git status | grep '${environment}/application/values/user-manager-values.yaml'", returnStatus: true) == env.SH_SUCCESS_STATUS_CODE as Integer +} + String getPomVersion(String pomFile){ def pom = readMavenPom file: pomFile