diff options
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5b324d5f..523230e3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: maven:3.6-jdk-8 +image: maven:latest variables: LC_ALL: "en_US.UTF-8" @@ -9,6 +9,9 @@ variables: MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=${CI_PROJECT_DIR}/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true" GIT_DEPTH: "2" SECURE_LOG_LEVEL: "debug" + JACOCO_CSV_LOCATION: '${CI_PROJECT_DIR}/build_reporting/target/site/jacoco-aggregate-ut/jacoco.csv' + JACOCO_XML_LOCATION: '${CI_PROJECT_DIR}/build_reporting/target/site/jacoco-aggregate-ut/jacoco.xml' + PROJECT_RELEASE_PACKAGE: '${CI_PROJECT_DIR}/target/*-dist.zip' include: - template: Dependency-Scanning.gitlab-ci.yml @@ -26,11 +29,61 @@ cache: assemble: stage: assemble + tags: + - docker except: - tags script: | mvn $MAVEN_CLI_OPTS generate-sources compile test + after_script: + - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, " instructions covered"; print 100*covered/instructions, "% covered" }' $JACOCO_CSV_LOCATION + coverage: '/([0-9]{1,3}.[0-9]*).%.covered/' artifacts: when: always reports: junit: "**/target/surefire-reports/TEST-*.xml" + paths: + - $JACOCO_CSV_LOCATION + - $JACOCO_XML_LOCATION + + +buildDistributionPackage: + stage: package + tags: + - docker + except: + - tags + - /^feature/.*$/i + script: | + export VERSION=$(mvn -B help:evaluate -Dexpression=project.version -B | grep -v "\[INFO\]" | grep -Po "\d+\.\d+\.\d+((-\w*)+)?") + echo "Build full package of version $VERSION" + mvn $MAVEN_CLI_OPTS verify -DskipTests + echo "VERSION=$VERSION" >> variables.env + artifacts: + name: "${CI_PROJECT_NAME}-${CI_COMMIT_SHORT_SHA}" + when: always + reports: + dotenv: variables.env + paths: + - $PROJECT_RELEASE_PACKAGE + +release: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + tags: + - docker + needs: + - job: buildDistributionPackage + artifacts: true + when: manual + only: + - master + script: | + echo "Releasing version $VERSION of $LIB_NAME" + echo "Publishing version $VERSION to public EGIZ maven" + mvn $MAVEN_CLI_OPTS deploy + artifacts: + name: "${CI_PROJECT_NAME}-${CI_COMMIT_SHORT_SHA}-release" + expire_in: never + paths: + - $PROJECT_RELEASE_PACKAGE |