stages: - test - release image: maven:3.9.8-eclipse-temurin-21 variables: MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository" cache: key: ${CI_COMMIT_REF_SLUG} paths: - .m2/repository # MVN TEST + JUNIT REPORT test: stage: test script: - mvn -B -ntp test artifacts: when: always reports: junit: - target/surefire-reports/*.xml - target/failsafe-reports/*.xml paths: - target/surefire-reports - target/failsafe-reports rules: - if: $CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_TAG # COMPILATION + RELEASE GENERATION release: stage: release needs: ["test"] script: - mvn -B -ntp -DskipTests package - JAR=$(ls target/*-with-dependencies.jar 2>/dev/null || ls target/*.jar | head -n1) - cp "$JAR" "target/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.jar" artifacts: paths: - target/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.jar release: name: "Release ${CI_COMMIT_TAG}" tag_name: "${CI_COMMIT_TAG}" description: | New release : ${CI_COMMIT_TAG}. Commit : ${CI_COMMIT_SHA} assets: links: - name: "${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.jar" url: "${CI_JOB_URL}/artifacts/raw/target/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.jar" rules: - if: $CI_COMMIT_TAG