From 60fbb5713ae9655e74c398d0fcedef753ce7b16e Mon Sep 17 00:00:00 2001 From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de> Date: Tue, 7 Jan 2025 17:04:47 +0100 Subject: [PATCH] pipeline publishes images --- .gitlab-ci.yml | 46 +++++++++++++++++++++++++++++++++++++++++++--- pom.xml | 4 +++- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b7e24209..50b114bf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -40,32 +40,72 @@ verify: script: - mvn verify $MAVEN_CLI_OPTS +.get-version: + before_script: + - export PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout $MAVEN_CLI_OPTS) + - export PROJECT_ARTIFACTID=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout $MAVEN_CLI_OPTS) + - export NEXUS_IMAGE_PREFIX="docker.ozg-sh.de/${PROJECT_ARTIFACTID}" + +# Merge request jobs +push-merge-request-image-gitlab: + stage: publish + extends: .get-version + script: + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION}" + - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + # when: never # Step disabled until gitlab container registry works + +push-merge-request-image-nexus: + stage: publish + extends: .get-version + script: + - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION}" + - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + # when: manual + +# Snapshot jobs push-snapshot-image-gitlab: stage: publish + extends: .get-version script: + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:main-${PROJECT_VERSION},${CI_REGISTRY_IMAGE}:snapshot-latest" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS only: - main + # rules: + # - when: never # Step disabled until gitlab container registry works push-snapshot-image-nexus: stage: publish + extends: .get-version script: + - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:main-${PROJECT_VERSION},${NEXUS_IMAGE_PREFIX}:snapshot-latest" - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS only: - main +# Release jobs push-release-image-gitlab: stage: publish + extends: .get-version script: - - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} + - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} $MAVEN_CLI_OPTS + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:release-${CI_COMMIT_TAG},${CI_REGISTRY_IMAGE}:latest" - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_COMMIT_TAG + # when: never # Step disabled until gitlab container registry works push-release-image-nexus: stage: publish + extends: .get-version script: - - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} - - mvn mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS + - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} $MAVEN_CLI_OPTS + - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:release-${CI_COMMIT_TAG},${NEXUS_IMAGE_PREFIX}:latest" + - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS rules: - if: $CI_COMMIT_TAG diff --git a/pom.xml b/pom.xml index 68d57529..018a4c82 100644 --- a/pom.xml +++ b/pom.xml @@ -210,7 +210,8 @@ <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <image> - <name>${CI_REGISTRY_IMAGE}/${project.artifactId}:${project.version}</name> + <name>${CI_REGISTRY_IMAGE}/${project.artifactId}</name> + <tags>${IMAGE_TAGS}</tags> <publish>true</publish> </image> <docker> @@ -224,6 +225,7 @@ </plugin> </plugins> </build> + </profile> <profile> <id>nexus-deploy</id> -- GitLab