From 35ce715796c9da387bf48e53663c2b75799b73b0 Mon Sep 17 00:00:00 2001
From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de>
Date: Mon, 28 Apr 2025 17:09:54 +0200
Subject: [PATCH 1/6] OZG-8085 Maven CI Component POC

---
 .gitlab-ci.yml | 27 +++++----------------------
 1 file changed, 5 insertions(+), 22 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1b03623..45e6a88 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,28 +12,16 @@ variables:
 services:
   - docker:24.0.5-dind
 
-cache:
-  paths:
-    - .m2/repository/
-    - target/
-
 stages:
   - build
   - test
   - publish
 
-package:
-  stage: build
-  script:
-    - mvn clean package -DskipTests=true $MAVEN_CLI_OPTS
-  artifacts:
-    paths:
-      - target/*.jar
-
-test:
-  stage: test
-  script:
-    - mvn test $MAVEN_CLI_OPTS
+# Maven Build, Test and Verify
+include:
+  - component: $CI_SERVER_FQDN/ozg-cloud/ci-components/maven_build@main
+    inputs:
+      maven_cli_opts: $MAVEN_CLI_OPTS
 
 .helm:
   before_script:
@@ -50,11 +38,6 @@ test-helm:
   script:
     - sh run_helm_test.sh
 
-verify:
-  stage: test
-  script:
-    - mvn verify $MAVEN_CLI_OPTS
-
 .get-version:
   before_script:
     - export PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout $MAVEN_CLI_OPTS | cut -d'-' -f1)
-- 
GitLab


From ac769202ec54bb262b16d2d076650817adafcda4 Mon Sep 17 00:00:00 2001
From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de>
Date: Mon, 28 Apr 2025 17:22:03 +0200
Subject: [PATCH 2/6] OZG-8085 Maven CI Component POC

---
 .gitlab-ci.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 45e6a88..cde025e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -22,6 +22,8 @@ include:
   - component: $CI_SERVER_FQDN/ozg-cloud/ci-components/maven_build@main
     inputs:
       maven_cli_opts: $MAVEN_CLI_OPTS
+      build_stage: build
+      test_stage: test
 
 .helm:
   before_script:
-- 
GitLab


From 3f76202516b72827acaac9389193ff973edb9fa1 Mon Sep 17 00:00:00 2001
From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de>
Date: Wed, 7 May 2025 16:54:15 +0200
Subject: [PATCH 3/6] OZG-8085 Maven Deploy CI Component POC

---
 .gitlab-ci.yml | 47 ++++++++++++-----------------------------------
 1 file changed, 12 insertions(+), 35 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cde025e..741439c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,13 +17,23 @@ stages:
   - test
   - publish
 
-# Maven Build, Test and Verify
 include:
-  - component: $CI_SERVER_FQDN/ozg-cloud/ci-components/maven_build@main
+  # Maven Build, Test and Verify
+  - component: $CI_SERVER_FQDN/ozg-cloud/devops/ci-components/maven_build@main
     inputs:
       maven_cli_opts: $MAVEN_CLI_OPTS
       build_stage: build
       test_stage: test
+  # Maven Deploy for MR, Snapshot and Release to GitLab
+  - component: $CI_SERVER_FQDN/ozg-cloud/devops/ci-components/maven_deploy@main
+    inputs:
+      job_prefix: gitlab
+      stage: publish
+      maven_cli_opts: >-
+        -s .m2/ci_settings.xml --batch-mode
+        -Dmaven.plugin.validation=brief
+      maven_profile: "-Pgitlab-deploy"
+      image_registry: $CI_REGISTRY_IMAGE
 
 .helm:
   before_script:
@@ -48,18 +58,6 @@ test-helm:
     - export MERGE_REQUEST_TAG="${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}"
     - export SNAPSHOT_TAG="${PROJECT_VERSION}-${CI_COMMIT_BRANCH}"
 
-# Merge request jobs
-push-merge-request-image-gitlab:
-  stage: publish
-  extends: .get-version
-  script:
-    - export PRIMARY_IMAGE_TAG=${MERGE_REQUEST_TAG}
-    - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${MERGE_REQUEST_TAG},${CI_REGISTRY_IMAGE}:${MERGE_REQUEST_TAG}-${CI_COMMIT_SHORT_SHA}"
-    - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
-  rules:
-    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
-      when: manual
-
 push-merge-request-image-nexus:
   stage: publish
   extends: .get-version
@@ -103,16 +101,6 @@ push-keystore-assembler-image-nexus:
     - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
 
 # Snapshot jobs
-push-snapshot-image-gitlab:
-  stage: publish
-  extends: .get-version
-  script:
-    - export PRIMARY_IMAGE_TAG=${SNAPSHOT_TAG}
-    - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${SNAPSHOT_TAG},${CI_REGISTRY_IMAGE}:${SNAPSHOT_TAG}-${CI_COMMIT_SHORT_SHA},${CI_REGISTRY_IMAGE}:snapshot-latest"
-    - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
-  only:
-    - main
-
 push-snapshot-image-nexus:
   stage: publish
   extends: .get-version
@@ -142,17 +130,6 @@ push-snapshot-helm-nexus:
       - "*.tgz"
 
 # Release jobs
-push-release-image-gitlab:
-  stage: publish
-  extends: .get-version
-  script:
-    - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} $MAVEN_CLI_OPTS
-    - export PRIMARY_IMAGE_TAG=${CI_COMMIT_TAG}
-    - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG},${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}-release,${CI_REGISTRY_IMAGE}:latest"
-    - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
-  rules:
-    - if: $CI_COMMIT_TAG
-
 push-release-image-nexus:
   stage: publish
   extends: .get-version
-- 
GitLab


From ac1ac13589ad24fcaea136df555731e2c93cf1b6 Mon Sep 17 00:00:00 2001
From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de>
Date: Wed, 7 May 2025 16:56:23 +0200
Subject: [PATCH 4/6] OZG-8085 correct inputs variable name

---
 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 741439c..7d6e649 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,7 +21,7 @@ include:
   # Maven Build, Test and Verify
   - component: $CI_SERVER_FQDN/ozg-cloud/devops/ci-components/maven_build@main
     inputs:
-      maven_cli_opts: $MAVEN_CLI_OPTS
+      maven_cli_options: $MAVEN_CLI_OPTS
       build_stage: build
       test_stage: test
   # Maven Deploy for MR, Snapshot and Release to GitLab
@@ -29,7 +29,7 @@ include:
     inputs:
       job_prefix: gitlab
       stage: publish
-      maven_cli_opts: >-
+      maven_cli_options: >-
         -s .m2/ci_settings.xml --batch-mode
         -Dmaven.plugin.validation=brief
       maven_profile: "-Pgitlab-deploy"
-- 
GitLab


From b3d34e825ca6c83fbabf5496ead1fdecefacc5b3 Mon Sep 17 00:00:00 2001
From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de>
Date: Wed, 7 May 2025 17:44:12 +0200
Subject: [PATCH 5/6] OZG-8085 Maven Deploy CI Component for nexus

---
 .gitlab-ci.yml | 45 +++++++++++++--------------------------------
 1 file changed, 13 insertions(+), 32 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7d6e649..b16fb1c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,6 +8,7 @@ variables:
   DOCKER_HOST: tcp://docker:2375
   DOCKER_TLS_CERTDIR: ""
   DOCKER_DRIVER: overlay2
+  NEXUS_IMAGE_REGISTRY_URL: docker.ozg-sh.de
 
 services:
   - docker:24.0.5-dind
@@ -34,6 +35,17 @@ include:
         -Dmaven.plugin.validation=brief
       maven_profile: "-Pgitlab-deploy"
       image_registry: $CI_REGISTRY_IMAGE
+  # Maven Deploy for MR, Snapshot and Release to Nexus
+  - component: $CI_SERVER_FQDN/ozg-cloud/devops/ci-components/maven_deploy@main
+    inputs:
+      job_prefix: nexus
+      stage: publish
+      maven_cli_options: >-
+        -s .m2/ci_settings.xml --batch-mode
+        -Dmaven.plugin.validation=brief
+      maven_profile: "-Pnexus-deploy"
+      image_registry: $NEXUS_IMAGE_REGISTRY_URL
+      append_artifact_id_to_registry: true
 
 .helm:
   before_script:
@@ -58,17 +70,7 @@ test-helm:
     - export MERGE_REQUEST_TAG="${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}"
     - export SNAPSHOT_TAG="${PROJECT_VERSION}-${CI_COMMIT_BRANCH}"
 
-push-merge-request-image-nexus:
-  stage: publish
-  extends: .get-version
-  script:
-    - export PRIMARY_IMAGE_TAG=${MERGE_REQUEST_TAG}
-    - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${MERGE_REQUEST_TAG},${NEXUS_IMAGE_PREFIX}:${MERGE_REQUEST_TAG}-${CI_COMMIT_SHORT_SHA}"
-    - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
-  rules:
-    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
-  when: manual
-
+# Merge request jobs
 push-merge-request-helm-nexus:
   stage: publish
   variables:
@@ -101,16 +103,6 @@ push-keystore-assembler-image-nexus:
     - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
 
 # Snapshot jobs
-push-snapshot-image-nexus:
-  stage: publish
-  extends: .get-version
-  script:
-    - export PRIMARY_IMAGE_TAG=${SNAPSHOT_TAG}
-    - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${SNAPSHOT_TAG},${NEXUS_IMAGE_PREFIX}:${SNAPSHOT_TAG}-${CI_COMMIT_SHORT_SHA},${NEXUS_IMAGE_PREFIX}:snapshot-latest"
-    - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
-  only:
-    - main
-
 push-snapshot-helm-nexus:
   stage: publish
   variables:
@@ -130,17 +122,6 @@ push-snapshot-helm-nexus:
       - "*.tgz"
 
 # Release jobs
-push-release-image-nexus:
-  stage: publish
-  extends: .get-version
-  script:
-    - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} $MAVEN_CLI_OPTS
-    - export PRIMARY_IMAGE_TAG=${CI_COMMIT_TAG}
-    - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${CI_COMMIT_TAG},${NEXUS_IMAGE_PREFIX}:${CI_COMMIT_TAG}-release,${NEXUS_IMAGE_PREFIX}:latest"
-    - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
-  rules:
-    - if: $CI_COMMIT_TAG
-
 push-release-helm-nexus:
   stage: publish
   variables:
-- 
GitLab


From 6345b79d1152bd065213769eb9bc2728577d3a8d Mon Sep 17 00:00:00 2001
From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de>
Date: Wed, 7 May 2025 17:54:47 +0200
Subject: [PATCH 6/6] OZG-8085 remove unused parts of pipeline

---
 .gitlab-ci.yml | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b16fb1c..c960f0f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,6 @@
 image: maven:3.9.9-eclipse-temurin-21-alpine
 
 variables:
-  MAVEN_DEPLOY_CLI_OPTS: "--no-transfer-progress -DskipTests"
   MAVEN_CLI_OPTS: >-
     -s .m2/ci_settings.xml --batch-mode
     -Dmaven.plugin.validation=brief
@@ -65,10 +64,6 @@ test-helm:
 .get-version:
   before_script:
     - export PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout $MAVEN_CLI_OPTS | cut -d'-' -f1)
-    - export PROJECT_ARTIFACTID=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout $MAVEN_CLI_OPTS)
-    - export NEXUS_IMAGE_PREFIX="docker.ozg-sh.de/${PROJECT_ARTIFACTID}"
-    - export MERGE_REQUEST_TAG="${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}"
-    - export SNAPSHOT_TAG="${PROJECT_VERSION}-${CI_COMMIT_BRANCH}"
 
 # Merge request jobs
 push-merge-request-helm-nexus:
-- 
GitLab