diff --git a/Jenkinsfile b/Jenkinsfile index 81dffd261fd106e1d2409174199cb7c31aa7ab2a..8e851600e5c2999479d54ff604eb7d050b488c6a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -13,6 +13,7 @@ pipeline { IMAGE_TAG = "" VERSION = "" E2E_FAILED = "" + HELM_CHART_VERSION = "" } options { @@ -189,16 +190,14 @@ pipeline { container('k8s') { script { FAILED_GOOFY_STAGE=env.STAGE_NAME - def helmChartVersion = generateImageTag() - - setHelmChartVersion(helmChartVersion) + HELM_CHART_VERSION = generateHelmChartVersion() sh "helm lint -f goofy-server/src/main/helm/test-values.yaml goofy-server/src/main/helm" sh "helm unittest -f '../../test/helm/*.yaml' goofy-server/src/main/helm" - sh "helm package goofy-server/src/main/helm" + sh "helm package goofy-server/src/main/helm --version=${HELM_CHART_VERSION}" - deployHelmChart(helmChartVersion) + deployHelmChart(HELM_CHART_VERSION) } } } @@ -235,7 +234,7 @@ pipeline { def stageName = env.STAGE_NAME def bezeichner = generateBezeichner(stageName) - startEnvironment(bezeichner, stageName, IMAGE_TAG, true) + startEnvironment(bezeichner, stageName, IMAGE_TAG, true, HELM_CHART_VERSION) def testResult = runTests(stageName, bezeichner, 'einheitlicher-ansprechpartner') @@ -263,7 +262,7 @@ pipeline { def stageName = env.STAGE_NAME def bezeichner = generateBezeichner(stageName) - startEnvironment(bezeichner, stageName, IMAGE_TAG, false) + startEnvironment(bezeichner, stageName, IMAGE_TAG, false, HELM_CHART_VERSION) def testResult = runTests(stageName, bezeichner, 'main-tests') @@ -327,16 +326,13 @@ pipeline { } } -Void deployHelmChart(String helmChartVersion) { - NEXUS_URL = 'http://nexus.dev-tools:8081/service/rest/v1/components?repository=ozg-base-apps' - NEXUS_SNAPSHOT_URL = 'http://nexus.dev-tools:8081/service/rest/v1/components?repository=ozg-base-apps-snapshot' - +Void deployHelmChart(String helmChartVersion) { withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]){ if (env.BRANCH_NAME == 'release') { - result = sh script: '''curl -u $USERNAME:$PASSWORD $NEXUS_URL -F file=@goofy-'''+helmChartVersion+'''.tgz''', returnStdout: true + result = sh script: '''curl -u $USERNAME:$PASSWORD http://nexus.dev-tools:8081/service/rest/v1/components?repository=ozg-base-apps -F file=@goofy-'''+helmChartVersion+'''.tgz''', returnStdout: true } else { - result = sh script: '''curl -u $USERNAME:$PASSWORD $NEXUS_SNAPSHOT_URL -F file=@goofy-'''+helmChartVersion+'''.tgz''', returnStdout: true + result = sh script: '''curl -u $USERNAME:$PASSWORD http://nexus.dev-tools:8081/service/rest/v1/components?repository=ozg-base-apps-snapshot -F file=@goofy-'''+helmChartVersion+'''.tgz''', returnStdout: true } if (result != '') { @@ -345,13 +341,17 @@ Void deployHelmChart(String helmChartVersion) { } } -Void setHelmChartVersion(String helmChartVersion) { - def helmChartPath = 'goofy-server/src/main/helm/Chart.yaml' - def chart = readYaml file: helmChartPath +String generateHelmChartVersion() { + def chartVersion = "${VERSION}" - chart.version = helmChartVersion + if (env.BRANCH_NAME == 'master') { + chartVersion += "-${env.GIT_COMMIT.take(7)}" + } + else if (env.BRANCH_NAME != 'release') { + chartVersion += "-${env.BRANCH_NAME}" + } - writeYaml file: helmChartPath, data: chart, overwrite: true + return chartVersion } Void tagAndPushDockerImage(String newTag){ @@ -375,8 +375,8 @@ String generateImageTag() { return imageTag } -Void startEnvironment(String bezeichner, String stage, String imageTag, Boolean isEa) { - setupAnsible(imageTag, stage, isEa) +Void startEnvironment(String bezeichner, String stage, String imageTag, Boolean isEa, String chartVersion) { + setupAnsible(imageTag, stage, isEa, chartVersion) try { deleteKopStack(bezeichner, stage) @@ -389,14 +389,14 @@ Void startEnvironment(String bezeichner, String stage, String imageTag, Boolean addKeycloakUser(bezeichner, stage) } -Void setupAnsible(String imageTag, String stage, Boolean isEa) { +Void setupAnsible(String imageTag, String stage, Boolean isEa, String chartVersion) { checkoutProvisioningRepo(stage) if (env.BRANCH_NAME == 'release') { copyTestEnvironmentToDev(stage) } - editEnvironemntVersion(stage, imageTag, isEa) + editEnvironemntVersion(stage, imageTag, isEa, chartVersion) if (isEa) { setupEaEnvironment(stage) @@ -448,7 +448,7 @@ Void copyTestEnvironmentToDev(stage) { } } -Void editEnvironemntVersion(String stage, String imageTag, Boolean isEa) { +Void editEnvironemntVersion(String stage, String imageTag, Boolean isEa, String chartVersion) { dir("${stage}/provisioning") { def editFile = "inventories/group_vars/dev/versions" @@ -464,7 +464,7 @@ Void editEnvironemntVersion(String stage, String imageTag, Boolean isEa) { devVersions.values.pluto.put('env', ['overrideSpringProfiles': overrideSpringProfiles]) devVersions.versions.goofy.image.tag = imageTag - devVersions.charts.goofy.version = imageTag + devVersions.charts.goofy.version = chartVersion writeYaml file: editFile, data: devVersions, overwrite: true } @@ -792,7 +792,7 @@ Void setNewGoofyProvisioningVersion(String environment) { def envVersions = readYaml file: envFile envVersions.versions.goofy.image.tag = IMAGE_TAG - devVersions.charts.goofy.version = imageTag + devVersions.charts.goofy.version = HELM_CHART_VERSION writeYaml file: envFile, data: envVersions, overwrite: true }