diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b7e24209df4473d06484036f4062d35fe3d0f347..50b114bf73364dc5136f07861d54e0a7e2109d01 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 68d57529fff4af6fb9b009b539e9d914a55bb259..018a4c823e4c414c544ac61e5a1111b90d53aa08 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>