diff --git a/Jenkinsfile b/Jenkinsfile index a399fcdf39f831871b5bba25c3726d119a20cdfb..4065e5d89532f5b2477e55cd81258f7b8e6e79d5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,6 +10,7 @@ pipeline { RELEASE_REGEX = /\d+.\d+.\d+/ SNAPSHOT_REGEX = /\d+.\d+.\d+-SNAPSHOT/ FAILED_STAGE = "" + SH_SUCCESS_STATUS_CODE = 0 } options { @@ -149,12 +150,11 @@ pipeline { script { FAILED_STAGE = env.STAGE_NAME - checkoutGitopsRepo() + cloneGitopsRepo() - setNewAfmAdapterVersion('dev') - setNewFsAdapterVersion('dev') + setNewDevAdapterVersion() - pushNewGitopsVersion('dev') + pushNewDevVersion() } } } @@ -167,12 +167,11 @@ pipeline { script { FAILED_STAGE = env.STAGE_NAME - checkoutGitopsRepo() + cloneGitopsRepo() - setNewAfmAdapterVersion('test') - setNewFsAdapterVersion('test') + setNewTestAdapterVersion() - pushNewGitopsVersion('test') + pushNewTestVersion() } } } @@ -239,6 +238,16 @@ String getElementAccessToken() { } } +Void setNewDevAdapterVersion() { + setNewAfmAdapterVersion('dev') + setNewFsAdapterVersion('dev') +} + +Void setNewTestAdapterVersion() { + setNewAfmAdapterVersion('test') + setNewFsAdapterVersion('test') +} + Void setNewAfmAdapterVersion(String environment) { dir("gitops") { def envFile = "${environment}/application/values/afm-adapter-values.yaml" @@ -263,28 +272,49 @@ Void setNewFsAdapterVersion(String environment) { } } +Void pushNewDevVersion() { + pushNewGitopsVersion('dev') +} + +Void pushNewTestVersion() { + pushNewGitopsVersion('test') +} + Void pushNewGitopsVersion(String environment) { dir('gitops') { - if (sh (script: "git status | grep '${environment}/application/values/.*-adapter-values.yaml'", returnStatus: true) == 1) { + if (!hasAdapterValuesFileChanged()) { return } withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { - sh "git add ${environment}/application/values/fs-adapter-values.yaml" - sh "git add ${environment}/application/values/afm-adapter-values.yaml" + sh "git add ${environment}/application/values/*-adapter-values.yaml" - sh 'git config user.email "jenkins@ozg-sh.de"' - sh 'git config user.name "jenkins"' sh "git commit -m 'jenkins rollout ${environment} afm-adapter fs-adapter version ${IMAGE_TAG}'" sh 'git push https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/gitops.git' } } } -Void checkoutGitopsRepo() { +Boolean hasAdapterValuesFileChanged(String environment) { + return sh (script: "git status | grep '${environment}/application/values/.*-adapter-values.yaml'", returnStatus: true) == env.SH_SUCCESS_STATUS_CODE as Integer +} + +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 tagAndPushDockerImage(String imageName, String newTag){