From 851d47037b1092d4c2991289eef3bddb4439bd7a Mon Sep 17 00:00:00 2001 From: Piotr Jaszczyk Date: Thu, 23 Aug 2018 14:45:39 +0200 Subject: Fail build when coverage is too low Minimum coverage set to 60%. It works by parsing aggregated Jacoco report as oposed to jacoco:check goal which checks coverage at most on submodule level. Change-Id: Ie6f50ce9b2f15e62ad84480611897a98321a7af2 Issue-ID: DCAEGEN2-681 Signed-off-by: Piotr Jaszczyk --- hv-collector-coverage/check-coverage.sh | 23 +++++++++++++++++++++++ hv-collector-coverage/pom.xml | 21 +++++++++++++++++++++ pom.xml | 6 ++++++ 3 files changed, 50 insertions(+) create mode 100755 hv-collector-coverage/check-coverage.sh diff --git a/hv-collector-coverage/check-coverage.sh b/hv-collector-coverage/check-coverage.sh new file mode 100755 index 00000000..7a2f4c6c --- /dev/null +++ b/hv-collector-coverage/check-coverage.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +set -euo pipefail + +JACOCO_REPORT="$1" +MIN_COVERAGE_PERCENT="$2" + +function coverage_from_report() { + local xpath_expr="string(/report/counter[@type='INSTRUCTION']/@$1)" + xpath -q -e "$xpath_expr" "$JACOCO_REPORT" +} + +missed=`coverage_from_report missed` +covered=`coverage_from_report covered` +total=$(($missed + $covered)) +coverage=$((100 * $covered / $total)) + +echo "Coverage: $coverage% (covered/total: $covered/$total)" + +if [[ $coverage -lt $MIN_COVERAGE_PERCENT ]]; then + echo "Coverage is too low. Minimum coverage: $MIN_COVERAGE_PERCENT%" + exit 1 +fi + diff --git a/hv-collector-coverage/pom.xml b/hv-collector-coverage/pom.xml index f988f8ec..970d4b41 100644 --- a/hv-collector-coverage/pom.xml +++ b/hv-collector-coverage/pom.xml @@ -71,6 +71,27 @@ + + org.codehaus.mojo + exec-maven-plugin + + + check-coverage + verify + + exec + + + + + ${project.basedir}/check-coverage.sh + ${project.basedir} + + target/site/jacoco-aggregate/jacoco.xml + ${jacoco.minimum.coverage} + + + diff --git a/pom.xml b/pom.xml index 2781799b..86185e6e 100644 --- a/pom.xml +++ b/pom.xml @@ -65,6 +65,7 @@ 3.7.0 1.7 0.8.2 + 60 3.5.1 @@ -262,6 +263,11 @@ + + org.codehaus.mojo + exec-maven-plugin + 1.6.0 + -- cgit 1.2.3-korg