stages: - compile - test - build .setup-mvn: &setup-mvn - chmod a+x mvnw variables: MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository" cache: paths: - .m2/repository/ - "**/target/" compile: stage: compile image: maven:3.8.6-openjdk-18 script: - *setup-mvn - ./mvnw clean compile test: stage: test image: markhobson/maven-chrome:jdk-18 script: - *setup-mvn - ./mvnw test artifacts: name: "Surefire test reports from $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG" expire_in: 1 day reports: junit: - "**/target/surefire-reports/TEST-*.xml" check: stage: build image: markhobson/maven-chrome:jdk-18 script: - *setup-mvn - ./mvnw clean compile - ./mvnw sonar:sonar -Dsonar.projectKey=$SONAR_PROJECT -Dsonar.projectName=$SONAR_PROJECT -Dsonar.host.url=$SONAR_URL -Dsonar.token=$SONAR_TOKEN build: stage: build image: maven:3.8.6-openjdk-18 script: - *setup-mvn - ./mvnw package -DskipTests artifacts: name: "Maven artifacts from $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG" paths: - "**/target/*.jar"