From a857a8a29262c3ff7a02f32ccc7b8101a16c26ac Mon Sep 17 00:00:00 2001 From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de> Date: Tue, 3 Dec 2024 16:00:48 +0100 Subject: [PATCH] KOP-2720 Code SH Pipeline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pipeline pusht docker Images mit den Image-Tags `main-<version>` und `snapshot-latest` für neue Commits auf main und den Image-Tags `release-<tag-version>` und `latest` für Git-Tags. Docker Images werden nur auf Nexus gepusht, entsprechende Steps für die code.SH Container Registry sind vorbereitet aber deaktiviert. Reviewed-on: https://git.ozg-sh.de/ozgcloud-lib/xta-test-server/pulls/16 Co-authored-by: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de> Co-committed-by: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de> --- .gitignore | 2 +- .gitlab-ci.yml | 128 ++++++++++------- .m2/ci_settings.xml | 56 ++++++++ .m2/settings.xml | 61 -------- pom.xml | 333 +++++++++----------------------------------- 5 files changed, 197 insertions(+), 383 deletions(-) create mode 100644 .m2/ci_settings.xml delete mode 100644 .m2/settings.xml diff --git a/.gitignore b/.gitignore index db34913..523b621 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ HELP.md !**/src/test/**/target/ doc/**/*.pdf .m2/ -!.m2/settings.xml +!.m2/ci_settings.xml .mvn/ ### STS ### diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 595ecc9..8ad2bef 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,24 +1,16 @@ -image: dimage-base-release.repo-ex.zcdi.dataport.de/sdks/maven:3.9.2-java-21 +image: maven:3.9.9-eclipse-temurin-21-alpine variables: MAVEN_DEPLOY_CLI_OPTS: "--no-transfer-progress -DskipTests" MAVEN_CLI_OPTS: >- - -s .m2/settings.xml --batch-mode - -Dmaven.repo.local=.m2/repository + -s .m2/ci_settings.xml --batch-mode -Dmaven.plugin.validation=brief - HTTP_PROXY_HOST: $DATAPORT_PROXY - HTTP_PROXY_PORT: 3128 - HTTP_PROXY: $DATAPORT_PROXY:$HTTP_PROXY_PORT - HTTPS_PROXY: $HTTP_PROXY - http_proxy: $HTTP_PROXY - https_proxy: $HTTP_PROXY DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" DOCKER_DRIVER: overlay2 services: - - name: kopsh-docker-dockerhub.repo-ex.zcdi.dataport.de/docker:dind - alias: docker + - docker:24.0.5-dind cache: paths: @@ -27,61 +19,93 @@ cache: stages: - build - - deploy - - image + - test + - publish -test: +build: stage: build script: - - echo "mvn test $MAVEN_CLI_OPTS" - - mvn help:effective-settings $MAVEN_CLI_OPTS - - mvn test $MAVEN_CLI_OPTS + - mvn clean compile $MAVEN_CLI_OPTS artifacts: paths: - target/*.jar -deploy_to_artifactory: - stage: deploy - when: manual +test: + stage: test script: - - echo "mvn deploy -P artifactory-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS" - - mvn deploy -P artifactory-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS - only: - - main + - mvn test $MAVEN_CLI_OPTS + +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) + - export PROJECT_ARTIFACTID=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout $MAVEN_CLI_OPTS) + - export NEXUS_IMAGE_PREFIX="docker.ozg-sh.de/${PROJECT_ARTIFACTID}" -deploy_to_nexus: - stage: deploy +# 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: - - echo "mvn deploy -P nexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS" - - mvn deploy -P nexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS - only: - - main + - 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_docker_image_to_nexus: - stage: image +push-snapshot-image-nexus: + stage: publish + extends: .get-version script: - - echo "Push docker image to nexus ($Nexus_REPO_USER)" - - | - mvn install spring-boot:build-image \ - $MAVEN_CLI_OPTS $MAVEN_DEPLOY_CLI_OPTS \ - -DdockerRegistryHost=docker.ozg-sh.de \ - -DdockerRegistryUsername=$Nexus_REPO_USER \ - -DdockerRegistryPassword=$Nexus_REPO_PASS \ - -Dspring-boot.build-image.publish=true + - 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 -push_docker_image_to_artifactory: - stage: image +# Release jobs +push-release-image-gitlab: + stage: publish + extends: .get-version script: - - echo "Push docker image to artifactory ($Artifactory_REPO_USER)" - - | - mvn install spring-boot:build-image \ - $MAVEN_CLI_OPTS $MAVEN_DEPLOY_CLI_OPTS \ - -DdockerRegistryHost=kopsh-docker.repo-ex.zcdi.dataport.de \ - -DdockerRegistryUsername=$Artifactory_REPO_USER \ - -DdockerRegistryPassword=$Artifactory_REPO_PASS \ - -Dspring-boot.build-image.publish=true - only: - - main + - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:release-${PROJECT_VERSION},${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} + - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:release-${CI_COMMIT_TAG},${CI_REGISTRY_IMAGE}:latest" + - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS + rules: + - if: $CI_COMMIT_TAG diff --git a/.m2/ci_settings.xml b/.m2/ci_settings.xml new file mode 100644 index 0000000..53e7911 --- /dev/null +++ b/.m2/ci_settings.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd" + xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <localRepository>.m2/repository</localRepository> + + <servers> + <server> + <id>ozg-nexus</id> + <username>${env.NEXUS_USER}</username> + <password>${env.NEXUS_PASSWORD}</password> + </server> + <server> + <id>ozg-snapshots-nexus</id> + <username>${env.NEXUS_USER}</username> + <password>${env.NEXUS_PASSWORD}</password> + </server> + <server> + <id>codesh-gitlab-maven</id> + <configuration> + <httpHeaders> + <property> + <name>Job-Token</name> + <value>${CI_JOB_TOKEN}</value> + </property> + </httpHeaders> + </configuration> + </server> + </servers> + <profiles> + <profile> + <id>ci-default</id> + <activation> + <activeByDefault>true</activeByDefault> + </activation> + <repositories> + <repository> + <id>codesh-gitlab-maven</id> + <url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url> + </repository> + <repository> + <id>ozg-nexus</id> + <name>ozg-releases</name> + <url>https://nexus.ozg-sh.de/repository/ozg-releases/</url> + </repository> + <repository> + <id>ozg-snapshots-nexus</id> + <name>ozg-snapshots</name> + <url>https://nexus.ozg-sh.de/repository/ozg-snapshots/</url> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + </repositories> + </profile> + </profiles> +</settings> \ No newline at end of file diff --git a/.m2/settings.xml b/.m2/settings.xml deleted file mode 100644 index f080d57..0000000 --- a/.m2/settings.xml +++ /dev/null @@ -1,61 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd" - xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <localRepository>.m2/repository</localRepository> - - <servers> - <server> - <id>artifactory</id> - <username>${env.Artifactory_REPO_USER}</username> - <password>${env.Artifactory_REPO_PASS}</password> - </server> - <server> - <id>artifactory-snapshots</id> - <username>${env.Artifactory_REPO_USER}</username> - <password>${env.Artifactory_REPO_PASS}</password> - </server> - <server> - <id>ozg-nexus</id> - <username>${env.Nexus_REPO_USER}</username> - <password>${env.Nexus_REPO_PASS}</password> - </server> - <server> - <id>ozg-snapshots-nexus</id> - <username>${env.Nexus_REPO_USER}</username> - <password>${env.Nexus_REPO_PASS}</password> - </server> - </servers> - <profiles> - <profile> - <id>local-build</id> - <repositories> - <repository> - <id>artifactory</id> - <name>artifactory</name> - <url>https://repo-ex.zcdi.dataport.de:443/artifactory/kopsh-maven-virt/</url> - </repository> - <repository> - <id>artifactory-snapshots</id> - <name>artifactory-snapshots</name> - <url>https://repo-ex.zcdi.dataport.de:443/artifactory/kopsh-maven-virt/</url> - <snapshots> - <enabled>true</enabled> - </snapshots> - </repository> - </repositories> - </profile> - </profiles> - <activeProfiles> - <activeProfile>local-build</activeProfile> - </activeProfiles> - <proxies> - <proxy> - <id>dataport-proxy</id> - <active>true</active> - <protocol>http</protocol> - <host>${env.DATAPORT_PROXY}</host> - <port>3128</port> - <nonProxyHosts>localhost|127.0.0.1|*.dataport.de</nonProxyHosts> - </proxy> - </proxies> -</settings> diff --git a/pom.xml b/pom.xml index a0e0ce4..1d99389 100644 --- a/pom.xml +++ b/pom.xml @@ -4,9 +4,9 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-parent</artifactId> - <version>3.3.4</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-parent</artifactId> + <version>4.6.0</version> </parent> <groupId>de.ozgcloud.xta</groupId> @@ -17,18 +17,16 @@ <description>A XTA Server for testing a client implementation.</description> <properties> - <java.version>21</java.version> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> <!-- build versions --> - <jacoco.version>0.8.12</jacoco.version> - <log4j2.version>2.20.0</log4j2.version> + <log4j2.version>2.23.1</log4j2.version> <cxf.version>4.0.5</cxf.version> - <cxf-xjc.version>4.0.0</cxf-xjc.version> - <lombok.version>1.18.34</lombok.version> - <springdoc.version>2.1.0</springdoc.version> - <org.mapstruct.version>1.6.0</org.mapstruct.version> + <cxf-xjc.version>4.0.2</cxf-xjc.version> + <springdoc.version>2.6.0</springdoc.version> + + <wsdl.version>2.1.1</wsdl.version> <!-- Build settings --> <timestamp>${maven.build.timestamp}</timestamp> @@ -44,13 +42,6 @@ <asciidoctorj.diagram.version>2.3.1</asciidoctorj.diagram.version> <asciidoctorj.pdf.version>2.3.18</asciidoctorj.pdf.version> <jruby.version>9.4.8.0</jruby.version> - <wsdl.version>2.1.1</wsdl.version> - - <!-- Docker image --> - <dockerHost>http://docker:2375</dockerHost> - <dockerRegistryUsername>?</dockerRegistryUsername> - <dockerRegistryPassword>?</dockerRegistryPassword> - <dockerRegistryHost>docker.ozg-sh.de</dockerRegistryHost> </properties> <dependencyManagement> @@ -63,12 +54,12 @@ <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk18on</artifactId> - <version>1.78.1</version> + <version>1.79</version> </dependency> <dependency> <groupId>com.fasterxml.jackson</groupId> <artifactId>jackson-bom</artifactId> - <version>2.18.0</version> + <version>2.18.1</version> <type>pom</type> <scope>import</scope> </dependency> @@ -113,6 +104,14 @@ <artifactId>spring-security-config</artifactId> </dependency> + <!-- Mapstruct --> + <dependency> + <groupId>org.mapstruct</groupId> + <artifactId>mapstruct</artifactId> + <version>${mapstruct.version}</version> + </dependency> + + <!-- Jackson Fasterxml --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> @@ -129,41 +128,6 @@ <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> - <dependency> - <groupId>commons-codec</groupId> - <artifactId>commons-codec</artifactId> - </dependency> - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - <version>2.16.1</version> - </dependency> - <dependency> - <groupId>org.mapstruct</groupId> - <artifactId>mapstruct</artifactId> - <version>${org.mapstruct.version}</version> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-thymeleaf</artifactId> - <exclusions> - - <exclusion> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>nz.net.ultraq.thymeleaf</groupId> - <artifactId>thymeleaf-layout-dialect</artifactId> - </dependency> - - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <optional>true</optional> - </dependency> <!-- spring boot log4j2 --> <dependency> @@ -191,7 +155,7 @@ <artifactId>log4j-jcl</artifactId> <version>${log4j2.version}</version> </dependency> - <!-- Jul is used in all embedded tomcats. All that apps should be runned + <!-- Jul is used in all embedded tomcats. All that apps should be run with parameter --> <!-- -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager --> <dependency> @@ -276,52 +240,10 @@ </exclusion> </exclusions> </dependency> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-core</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-junit-jupiter</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter-engine</artifactId> - <scope>test</scope> - </dependency> </dependencies> <build> <finalName>${project.artifactId}-${project.version}</finalName> - <defaultGoal>process-resources</defaultGoal> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - <includes> - <include>application*.yml</include> - <include>banner.txt</include> - <include>WEB-INF</include> - </includes> - </resource> - <resource> - <directory>src/main/resources</directory> - <filtering>false</filtering> - <excludes> - <exclude>application*.yml</exclude> - <exclude>banner.txt</exclude> - <exclude>wsdl</exclude> - </excludes> - </resource> - </resources> - <testResources> - <testResource> - <directory>src/test/resources</directory> - <filtering>false</filtering> - </testResource> - </testResources> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> @@ -470,10 +392,6 @@ </execution> </executions> </plugin> - <plugin> - <groupId>com.amashchenko.maven.plugin</groupId> - <artifactId>gitflow-maven-plugin</artifactId> - </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> @@ -485,110 +403,34 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> - <classifier>exec</classifier> - <excludes> - <exclude> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - </exclude> - </excludes> - <addResources>true</addResources> - <layers> - <enabled>true</enabled> - </layers> <additionalProperties> <wsdl.version>${wsdl.version}</wsdl.version> </additionalProperties> - <image> - <name>${dockerRegistryHost}/${project.artifactId}:${project.version}</name> - <env> - <HTTP_PROXY>${env.HTTP_PROXY}</HTTP_PROXY> - <HTTPS_PROXY>${env.HTTP_PROXY}</HTTPS_PROXY> - <BP_JVM_VERSION>${java.version}</BP_JVM_VERSION> - </env> - </image> - <docker> - <publishRegistry> - <url>${dockerRegistryHost}</url> - <username>${dockerRegistryUsername}</username> - <password>${dockerRegistryPassword}</password> - </publishRegistry> - </docker> </configuration> <executions> <execution> - <id>repackage</id> - <configuration> - <classifier>exec</classifier> - </configuration> + <phase>install</phase> <goals> <goal>build-image-no-fork</goal> - <goal>build-info</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <release>${java.version}</release> - <annotationProcessorPaths> - <path> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>${lombok.version}</version> - </path> - <path> - <groupId>org.mapstruct</groupId> - <artifactId>mapstruct-processor</artifactId> - <version>${org.mapstruct.version}</version> - </path> - </annotationProcessorPaths> - <compilerArgs> - <compilerArg> - -Amapstruct.defaultComponentModel=spring - </compilerArg> - <compilerArg> - -Amapstruct.unmappedTargetPolicy=WARN - </compilerArg> - <!--Sorgt dafür, dass Parameternamen erhalten bleiben --> - <compilerArg> - -parameters - </compilerArg> - </compilerArgs> - - <encoding>${project.build.sourceEncoding}</encoding> - <generatedSourcesDirectory>${basedir}/generated/main/java</generatedSourcesDirectory> - <generatedTestSourcesDirectory> - ${basedir}/generated/test/java - </generatedTestSourcesDirectory> - </configuration> + <artifactId>maven-failsafe-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-eclipse-plugin</artifactId> - <version>2.10</version> - <configuration> - <downloadSources>true</downloadSources> - <downloadJavadocs>false</downloadJavadocs> - </configuration> + <artifactId>maven-surefire-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <includes> - <include>**/*Test.java</include> - <include>**/*ITCase.java</include> - </includes> - </configuration> + <artifactId>maven-compiler-plugin</artifactId> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <!-- version is defined in parent pom --> - <version>${jacoco.version}</version> </plugin> <plugin> <groupId>org.cyclonedx</groupId> @@ -604,47 +446,6 @@ </executions> </plugin> </plugins> - <pluginManagement> - <plugins> - <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. --> - <plugin> - <groupId>org.eclipse.m2e</groupId> - <artifactId>lifecycle-mapping</artifactId> - <version>1.0.0</version> - <configuration> - <lifecycleMappingMetadata> - <pluginExecutions> - <pluginExecution> - <pluginExecutionFilter> - <groupId>org.asciidoctor</groupId> - <artifactId>asciidoctor-maven-plugin</artifactId> - <versionRange>[2.2.1,)</versionRange> - <goals> - <goal>process-asciidoc</goal> - </goals> - </pluginExecutionFilter> - </pluginExecution> - </pluginExecutions> - </lifecycleMappingMetadata> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>3.4.1</version> - <configuration> - <archive> - <addMavenDescriptor>false</addMavenDescriptor> - </archive> - </configuration> - </plugin> - <plugin> - <groupId>com.amashchenko.maven.plugin</groupId> - <artifactId>gitflow-maven-plugin</artifactId> - <version>1.18.0</version> - </plugin> - </plugins> - </pluginManagement> </build> <profiles> @@ -857,68 +658,62 @@ </build> </profile> + <!-- Deployment Profiles --> <profile> - <id>owasp</id> + <id>gitlab-deploy</id> + <activation> + <activeByDefault>false</activeByDefault> + </activation> <build> <plugins> <plugin> - <groupId>org.owasp</groupId> - <artifactId>dependency-check-maven</artifactId> - <version>8.3.1</version> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> <configuration> - <failBuildOnCVSS>8.0</failBuildOnCVSS> - <junitFailOnCVSS>8.0</junitFailOnCVSS> - <formats>JUNIT,HTML,JSON</formats> - <scanPlugins>false</scanPlugins> + <image> + <name>${CI_REGISTRY_IMAGE}/${project.artifactId}</name> + <tags>${IMAGE_TAGS}</tags> + <publish>true</publish> + </image> + <docker> + <publishRegistry> + <url>code.schleswig-holstein.de</url> + <username>${CI_REGISTRY_USER}</username> + <password>${CI_REGISTRY_PASSWORD}</password> + </publishRegistry> + </docker> </configuration> - <executions> - <execution> - <goals> - <goal>check</goal> - </goals> - </execution> - </executions> </plugin> </plugins> </build> </profile> - - <!-- Deployment Profiles --> - <profile> - <id>artifactory-deploy</id> - <activation> - <activeByDefault>false</activeByDefault> - </activation> - <distributionManagement> - <repository> - <id>artifactory</id> - <name>artifactory</name> - <url>https://repo-ex.zcdi.dataport.de:443/artifactory/kopsh-maven-virt/</url> - </repository> - <snapshotRepository> - <id>artifactory-snapshots</id> - <name>artifactory-snapshots</name> - <url>https://repo-ex.zcdi.dataport.de:443/artifactory/kopsh-maven-virt/</url> - </snapshotRepository> - </distributionManagement> - </profile> <profile> <id>nexus-deploy</id> <activation> <activeByDefault>false</activeByDefault> </activation> - <distributionManagement> - <repository> - <id>ozg-nexus</id> - <name>ozg-releases</name> - <url>https://nexus.ozg-sh.de/repository/ozg-releases/</url> - </repository> - <snapshotRepository> - <id>ozg-snapshots-nexus</id> - <name>ozg-snapshots</name> - <url>https://nexus.ozg-sh.de/repository/ozg-snapshots/</url> - </snapshotRepository> - </distributionManagement> + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <configuration> + <image> + <name>docker.ozg-sh.de/${project.artifactId}</name> + <tags>${IMAGE_TAGS}</tags> + <publish>true</publish> + </image> + <docker> + <publishRegistry> + <url>docker.ozg-sh.de</url> + <username>${NEXUS_USER}</username> + <password>${NEXUS_PASSWORD}</password> + </publishRegistry> + </docker> + </configuration> + </plugin> + </plugins> + </build> </profile> </profiles> </project> -- GitLab