57 lines
1.5 KiB
YAML
57 lines
1.5 KiB
YAML
stages:
|
|
- test
|
|
- build
|
|
- 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
|
|
|
|
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
|
|
|
|
build_tag:
|
|
stage: build
|
|
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
|
|
expire_in: 1 year
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
|
|
release_tag:
|
|
stage: release
|
|
needs: ["build_tag"]
|
|
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
|
script:
|
|
- >
|
|
release-cli create
|
|
--name "Release ${CI_COMMIT_TAG}"
|
|
--tag-name "${CI_COMMIT_TAG}"
|
|
--description "New release : ${CI_COMMIT_TAG} - Commit : ${CI_COMMIT_SHA})."
|
|
--assets-link "{\"name\":\"${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.jar\",\"url\":\"${CI_PROJECT_URL}/-/jobs/artifacts/${CI_COMMIT_TAG}/raw/target/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.jar?job=build_tag\"}"
|
|
rules:
|
|
- if: $CI_COMMIT_TAG |