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
     }