From 99ffe18d2b0964ae5fa9800ec2e22ebdf53b2a29 Mon Sep 17 00:00:00 2001 From: Andreas Penski Date: Thu, 20 May 2021 10:30:18 +0000 Subject: [PATCH] Optimize ci --- .gitlab-ci.yml | 140 +++++++++++------- .mvn/createBuildImages.sh | 15 ++ .mvn/jvm.config | 1 + .mvn/settings.xml | 47 ++++++ pom.xml | 1 + .../xml/BaseResolverConfigurationTest.java | 6 +- 6 files changed, 153 insertions(+), 57 deletions(-) create mode 100644 .mvn/createBuildImages.sh create mode 100644 .mvn/jvm.config create mode 100644 .mvn/settings.xml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 14ee8cb..97c8077 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,7 @@ image: maven:latest variables: BUILD_PROPS: "-Dbuild.revision=$CI_COMMIT_SHA -Dbuild.branch=$CI_COMMIT_REF_NAME -Dbuild.number=$CI_PIPELINE_IID " - MAVEN_CLI_OPTS: " --batch-mode -Dmaven.repo.local=repository -Dfile.encoding=UTF-8 -s .settings/settings.xml" + MAVEN_CLI_OPTS: " --batch-mode -Dfile.encoding=UTF-8 -s .mvn/settings.xml -Dmaven.repo.local=.mvn/repository -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false" before_script: - export CI_JOB_TIMESTAMP="-Dbuild.timestamp=$(date --utc --iso-8601=seconds)" @@ -10,57 +10,11 @@ before_script: cache: key: maven paths: - - repository - -build-amazoncorretto: - stage: build - image: maven:amazoncorretto - script: - - mvn $MAVEN_CLI_OPTS $BUILD_PROPS $CI_JOB_TIMESTAMP verify - retry: 2 - artifacts: - name: amazoncorretto - paths: - - target/*.jar - reports: - junit: - - target/surefire-reports/*.xml - - target/failsafe-reports/*.xml - -build-java-14: - stage: build - image: maven:3-jdk-14 - script: - - mvn $MAVEN_CLI_OPTS $BUILD_PROPS $CI_JOB_TIMESTAMP verify - retry: 2 - artifacts: - when: on_failure - name: java-14 - paths: - - target/* - reports: - junit: - - target/surefire-reports/*.xml - - target/failsafe-reports/*.xml - -build-java-11-openj9: - stage: build - image: maven:3-jdk-11-openj9 - script: - - mvn $MAVEN_CLI_OPTS $BUILD_PROPS $CI_JOB_TIMESTAMP verify - retry: 2 - artifacts: - name: java-11-openj9 - paths: - - target/*.jar - reports: - junit: - - target/surefire-reports/*.xml - - target/failsafe-reports/*.xml + - .mvn/repository build-java-11: stage: build - image: maven:3-jdk-11 + image: $CI_REGISTRY_IMAGE/maven:3-jdk-11 script: - mvn $MAVEN_CLI_OPTS $BUILD_PROPS $CI_JOB_TIMESTAMP verify retry: 2 @@ -74,9 +28,39 @@ build-java-11: - target/surefire-reports/*.xml - target/failsafe-reports/*.xml +build-java-11-openj9: + stage: build + image: $CI_REGISTRY_IMAGE/maven:3-jdk-11-openj9 + script: + - mvn $MAVEN_CLI_OPTS $BUILD_PROPS $CI_JOB_TIMESTAMP verify + retry: 2 + artifacts: + name: java-11-openj9 + paths: + - target/*.jar + reports: + junit: + - target/surefire-reports/*.xml + - target/failsafe-reports/*.xml + +build-java8: + stage: build + image: $CI_REGISTRY_IMAGE/maven:3-jdk-8 + script: + - mvn $MAVEN_CLI_OPTS $BUILD_PROPS $CI_JOB_TIMESTAMP verify + retry: 2 + artifacts: + name: java-8 + paths: + - target/*.jar + reports: + junit: + - target/surefire-reports/*.xml + - target/failsafe-reports/*.xml + build-java-8-openj9: stage: build - image: maven:3-jdk-8-openj9 + image: $CI_REGISTRY_IMAGE/maven:3-jdk-8-openj9 script: - mvn $MAVEN_CLI_OPTS $BUILD_PROPS $CI_JOB_TIMESTAMP verify retry: 2 @@ -89,16 +73,49 @@ build-java-8-openj9: - target/surefire-reports/*.xml - target/failsafe-reports/*.xml -build-java8: +build-java-15: stage: build - image: maven:3-jdk-8-alpine + image: $CI_REGISTRY_IMAGE/maven:3-openjdk-15 script: - mvn $MAVEN_CLI_OPTS $BUILD_PROPS $CI_JOB_TIMESTAMP verify retry: 2 artifacts: - name: java-8-alpine + when: on_failure + name: java-15 paths: - - target/*.jar + - target/* + reports: + junit: + - target/surefire-reports/*.xml + - target/failsafe-reports/*.xml + +build-java-16: + stage: build + image: $CI_REGISTRY_IMAGE/maven:3-openjdk-16 + script: + - mvn $MAVEN_CLI_OPTS $BUILD_PROPS $CI_JOB_TIMESTAMP verify + retry: 2 + artifacts: + when: on_failure + name: java-16 + paths: + - target/* + reports: + junit: + - target/surefire-reports/*.xml + - target/failsafe-reports/*.xml + +build-java-17: + stage: build + image: $CI_REGISTRY_IMAGE/maven:3-openjdk-17 + script: + - mvn $MAVEN_CLI_OPTS $BUILD_PROPS $CI_JOB_TIMESTAMP verify + retry: 2 + artifacts: + when: on_failure + name: java-17 + paths: + - target/* reports: junit: - target/surefire-reports/*.xml @@ -106,7 +123,7 @@ build-java8: deploy: stage: deploy - image: maven:3-jdk-11 + image: $CI_REGISTRY_IMAGE/maven:3-jdk-11 dependencies: - build-java-11 script: @@ -118,3 +135,16 @@ deploy: - mvn $MAVEN_CLI_OPTS deploy:deploy-file -Dfile=target/validationtool-${PROJECT_VERSION}-java8-standalone.jar -DgroupId=kosit -DartifactId=validator -Dclassifier="java8-standalone" -Dversion=${PROJECT_VERSION} -Dpackaging=jar -DrepositoryId="gitlab-maven" -Durl=https://projekte.kosit.org/api/v4/projects/7/packages/maven - mvn $MAVEN_CLI_OPTS deploy:deploy-file -Dfile=target/validationtool-${PROJECT_VERSION}-sources.jar -DgroupId=kosit -DartifactId=validator -Dclassifier="sources" -Dversion=${PROJECT_VERSION} -Dpackaging=jar -DrepositoryId="gitlab-maven" -Durl=https://projekte.kosit.org/api/v4/projects/7/packages/maven when: manual + +create-build-image: + stage: deploy + image: docker:latest + needs: [ ] + services: + - docker:dind + script: + - apk add bash + - bash .mvn/createBuildImages.sh + when: manual + + diff --git a/.mvn/createBuildImages.sh b/.mvn/createBuildImages.sh new file mode 100644 index 0000000..e3a0111 --- /dev/null +++ b/.mvn/createBuildImages.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +TAGS=("3-openjdk-16" "3-jdk-11" "3-jdk-11-openj9" "3-jdk-8" "3-jdk-8-openj9", "3-openjdk-15", "3-openjdk-17") + +docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" +for i in "${TAGS[@]}" +do + echo Creating build image for "$i" + { + echo "FROM maven:${i}" + } >> Dockerfile + docker build -t "$CI_REGISTRY_IMAGE/maven:$i" . + docker push "$CI_REGISTRY_IMAGE/maven:${i}" + rm Dockerfile +done \ No newline at end of file diff --git a/.mvn/jvm.config b/.mvn/jvm.config new file mode 100644 index 0000000..423c21f --- /dev/null +++ b/.mvn/jvm.config @@ -0,0 +1 @@ +-Xms128m -Xmx512m \ No newline at end of file diff --git a/.mvn/settings.xml b/.mvn/settings.xml new file mode 100644 index 0000000..9e2bfbe --- /dev/null +++ b/.mvn/settings.xml @@ -0,0 +1,47 @@ + + + + + + + gitlab-maven + + + + Job-Token + ${env.CI_JOB_TOKEN} + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 44e3f80..1c37d2f 100644 --- a/pom.xml +++ b/pom.xml @@ -463,6 +463,7 @@ ${jacocoFailsafe} + -Xmx256m -classpath de.kosit.validationtool.cmd.CommandLineApplication diff --git a/src/test/java/de/kosit/validationtool/impl/xml/BaseResolverConfigurationTest.java b/src/test/java/de/kosit/validationtool/impl/xml/BaseResolverConfigurationTest.java index ca86c93..3d97a4c 100644 --- a/src/test/java/de/kosit/validationtool/impl/xml/BaseResolverConfigurationTest.java +++ b/src/test/java/de/kosit/validationtool/impl/xml/BaseResolverConfigurationTest.java @@ -45,10 +45,12 @@ public class BaseResolverConfigurationTest { private class TestResolvingStrategy extends StrictRelativeResolvingStrategy { void setInternalProperty(final SchemaFactory factory, final boolean lenient) { - allowExternalSchema(factory, lenient, "quatsch"); + allowExternalSchema(factory, lenient, NOT_EXISTING_SCHEME); } } + public static final String NOT_EXISTING_SCHEME = "not-existing-scheme"; + @Rule public ExpectedException expectedException = ExpectedException.none(); @@ -75,7 +77,7 @@ public class BaseResolverConfigurationTest { final TestResolvingStrategy s = new TestResolvingStrategy(); s.setInternalProperty(sf, true); s.setInternalProperty(sf, false); - verify(sf, times(2)).setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "quatsch"); + verify(sf, times(2)).setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, BaseResolverConfigurationTest.NOT_EXISTING_SCHEME); } }