diff --git a/.gitlab-ci.yaml b/.gitlab-ci.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b7e24209df4473d06484036f4062d35fe3d0f347 --- /dev/null +++ b/.gitlab-ci.yaml @@ -0,0 +1,71 @@ +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 + DOCKER_HOST: tcp://docker:2375 + DOCKER_TLS_CERTDIR: "" + DOCKER_DRIVER: overlay2 + +services: + - docker:dind + +cache: + paths: + - .m2/repository/ + - target/ + +stages: + - build + - test + - publish + +build: + stage: build + script: + - mvn clean compile $MAVEN_CLI_OPTS + artifacts: + paths: + - target/*.jar + +test: + stage: test + script: + - mvn test $MAVEN_CLI_OPTS + +verify: + stage: test + script: + - mvn verify $MAVEN_CLI_OPTS + +push-snapshot-image-gitlab: + stage: publish + script: + - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS + only: + - main + +push-snapshot-image-nexus: + stage: publish + script: + - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS + only: + - main + +push-release-image-gitlab: + stage: publish + script: + - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} + - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS + rules: + - if: $CI_COMMIT_TAG + +push-release-image-nexus: + stage: publish + script: + - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} + - mvn mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS + rules: + - if: $CI_COMMIT_TAG