54 lines
1.3 KiB
YAML
54 lines
1.3 KiB
YAML
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 |