From 5d5d26388fe4887dabd970499241289ea1599d81 Mon Sep 17 00:00:00 2001
From: Martin <git@mail.de>
Date: Thu, 21 Nov 2024 16:33:12 +0100
Subject: [PATCH] OZG-7121 extract docker image push into bash script

---
 Jenkinsfile                 | 10 ++++++----
 script/push-docker-image.sh | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 4 deletions(-)
 create mode 100644 script/push-docker-image.sh

diff --git a/Jenkinsfile b/Jenkinsfile
index 2637bbf..0da508c 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -286,10 +286,12 @@ String buildVersionName() {
 
 Void tagAndPushDockerImage(String newTag){
     withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) {
-        sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}'
-
-        sh "docker tag docker.ozg-sh.de/xta-test-server:${getPomVersion()} docker.ozg-sh.de/xta-test-server:${newTag}"
-        sh "docker push docker.ozg-sh.de/xta-test-server:${newTag}"
+		 sh """
+            export DOCKER_USER=${USER}
+            export DOCKER_PASSWORD=${PASSWORD}
+            export BRANCH_NAME=${env.BRANCH_NAME}
+            ./tag_and_push_docker_image.sh ${newTag} ${getPomVersion()}
+        """
     }
 }
 
diff --git a/script/push-docker-image.sh b/script/push-docker-image.sh
new file mode 100644
index 0000000..d118b47
--- /dev/null
+++ b/script/push-docker-image.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+set -e
+
+NEW_TAG="$1"
+POM_VERSION="$2"
+DOCKER_REGISTRY="docker.ozg-sh.de"
+IMAGE_NAME="xta-test-server"
+
+if [ -z "$DOCKER_USER" ]; then
+    echo "Error: USER environment variable must be set"
+    exit 1
+fi
+if [ -z "$DOCKER_PASSWORD" ]; then
+    echo "Error: PASSWORD environment variable must be set"
+    exit 1
+fi
+if [ -z "$BRANCH_NAME" ]; then
+    echo "Error: BRANCH_NAME environment variable must be set"
+    exit 1
+fi
+
+echo "BRANCH_NAME: ${BRANCH_NAME}"
+
+echo "Log into Docker..."
+echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USER" --password-stdin
+
+echo "Tag Docker image..."
+docker tag "${DOCKER_REGISTRY}/${IMAGE_NAME}:${POM_VERSION}" "${DOCKER_REGISTRY}/${IMAGE_NAME}:${NEW_TAG}"
+
+echo "Push Docker image..."
+docker push "${DOCKER_REGISTRY}/${IMAGE_NAME}:${NEW_TAG}"
+
+echo "Docker image pushed successfully: ${DOCKER_REGISTRY}/${IMAGE_NAME}:${NEW_TAG}"
\ No newline at end of file
-- 
GitLab