diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 898e0eaf2f744e9921d74193b7ef1973923c3c56..a6d38e74b8452ca7c78195b3aa34bbd0b128cc83 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -10,8 +10,8 @@ workflow:
   - when: always
 
 variables:
-  MAVEN_OPTS: "-Xmx500m -XX:GCLockerRetryAllocationCount=100 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN"
-  MAVEN_CLI_OPTS: "--batch-mode -DinstallAtEnd=true -DdeployAtEnd=true -DskipDeployBigArtefact=true -s $CI_PROJECT_DIR/ci_settings.xml"
+  MAVEN_OPTS: "-Xmx500m -XX:+UseSerialGC -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN"
+  MAVEN_CLI_OPTS: "--batch-mode -DskipDeployBigArtefact=true -s $CI_PROJECT_DIR/ci_settings.xml"
 
 stages:
 - build
@@ -30,6 +30,8 @@ maven-build:
   rules:
   - if: $OPERATION != null
     when: never 
+  - if: $CI_COMMIT_TAG != null
+    when: never 
   - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH
     variables:
       MAVEN_GOAL: "install"
@@ -42,19 +44,25 @@ maven-build:
   image: registry.opencode.de/diplanung/ozgxplanung/mvn-build-image:latest
   script:
   - mvn package -Dxplan-tests.maven.deploy.skip=true -Pdocker,skipAll -pl $mvnProjects -am
+  - ci/readEnvPropsForKanikoBuilds.sh > build.env
   - find . -name docker-build.tar | xargs gzip
   - set -o pipefail; find . -name docker-build.tar.gz | grep . | xargs du -h
   rules:
   - if: $CI_PIPELINE_SOURCE == 'schedule'
     when: never 
+  - if: $CI_COMMIT_TAG != null
+    when: on_success
   - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH
     when: never
   - when: on_success 
   artifacts:
     expire_in: 1 hour
+    reports:
+      dotenv: build.env
   variables:
     UPSTREAM_REF: $CI_COMMIT_REF_NAME
 
+
 maven-prepare-docker-contexts-apis-and-inspire-plu:
   extends: .maven-prepare-docker-contexts
   variables:
@@ -96,25 +104,15 @@ maven-prepare-docker-contexts-others:
 include: ci/all-kaniko-builds.gitlab-ci.yml
 
 
-maven-release:
+maven-deploy-release:
   image: registry.opencode.de/diplanung/ozgxplanung/mvn-build-image:latest
   stage: build:jvm
   rules:
-  - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH
-    when: never 
   - if: $OPERATION != null
     when: never 
-  - if: $CI_COMMIT_TAG
-  before_script:
-  - mkdir -p ~/.ssh/
-  - cp $DEPLOY_PRIVATE_KEY ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa
-  - cp $KNOWN_HOSTS ~/.ssh/known_hosts
-  - apt-get update && apt-get install -y git
-  - git config --global user.email "noreply@gitlab.opencode.de"
-  - git config --global user.name "xplanung GitLab CI"
-  - git checkout -B "$CI_COMMIT_REF_NAME"
+  - if: $CI_COMMIT_TAG != null
   script:
-  - mvn release:prepare release:perform $MAVEN_CLI_OPTS -DscmReleaseCommitComment="release @{releaseLabel}" -DtagNameFormat="v@{project.version}"
+  - mvn $MAVEN_CLI_OPTS deploy -PskipAll -Dxplan-tests.maven.deploy.skip=true
 
 gitlab-release:
   stage: deploy
@@ -122,9 +120,9 @@ gitlab-release:
   rules:
   - if: $OPERATION != null
     when: never 
-  - if: $CI_COMMIT_TAG
+  - if: $CI_COMMIT_TAG != null
   script:
-  - echo "Running the release job for $CI_COMMIT_TAG"
+  - echo "Running job gitlab-release for $CI_COMMIT_TAG"
   release:
     tag_name: $CI_COMMIT_TAG
     name: 'Release $CI_COMMIT_TAG'
diff --git a/ci/all-kaniko-builds.gitlab-ci.yml b/ci/all-kaniko-builds.gitlab-ci.yml
index 959dd308c367fae55177ae6214c287b2d037bcc4..0a6c703acb2182e446fdd659f5f614dc00970e15 100644
--- a/ci/all-kaniko-builds.gitlab-ci.yml
+++ b/ci/all-kaniko-builds.gitlab-ci.yml
@@ -5,15 +5,17 @@
     name: gcr.io/kaniko-project/executor:v1.9.0-debug
     entrypoint: [""]
   script:
-  - /kaniko/executor --context=tar://${CI_PROJECT_DIR}/$tarGzFile --destination=$destination:$dockerTag
+  - /kaniko/executor --context=tar://${CI_PROJECT_DIR}/$tarGzFile --destination=$destination:$xplanboxVersion
     --build-arg="BUILD_DATE='$(date --utc +'%Y-%m-%d %H:%M:%SZ')'"
     --build-arg="DOCKER_IMAGE_NAME=$dockerImageName"
     --build-arg="GIT_REVISION=${CI_COMMIT_SHA}"
     --build-arg="XPLANBOX_IMAGE_NAME_PREFIX=${CI_REGISTRY_IMAGE}/xplanbox"
-    --build-arg="XPLANBOX_VERSION=${dockerTag}"
+    --build-arg="XPLANBOX_VERSION=${xplanboxVersion}"
   rules:
   - if: $CI_PIPELINE_SOURCE == 'schedule'
     when: never 
+  - if: $CI_COMMIT_TAG != null
+    when: on_success
   - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH
     when: never 
   - when: on_success 
@@ -30,6 +32,7 @@ kaniko:xplan-cli-docker:
     tarGzFile: xplan-cli/xplan-cli-docker/target/docker/xplanbox/xplan-cli/tmp/docker-build.tar.gz
   needs:
     - maven-prepare-docker-contexts-cli
+    - kaniko:xplan-docker-volume-init
 
 kaniko:xplan-db-updater:
   extends: .kaniko:build
diff --git a/ci/readEnvPropsForKanikoBuilds.sh b/ci/readEnvPropsForKanikoBuilds.sh
new file mode 100755
index 0000000000000000000000000000000000000000..cb003d077cb032e6367d889b898779c0b0882c47
--- /dev/null
+++ b/ci/readEnvPropsForKanikoBuilds.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+# to be run in a folder with pom.xml
+
+xplanboxVersion=$(mvn -N help:evaluate -Dexpression=project.version -q -DforceStdout)
+
+echo -n "xplanboxVersion=$([[ $xplanboxVersion == *SNAPSHOT ]] && echo 'latest' || echo $xplanboxVersion)
+"
\ No newline at end of file