diff options
-rwxr-xr-x | hv-collector-coverage/check-coverage.sh | 23 | ||||
-rw-r--r-- | hv-collector-coverage/pom.xml | 21 | ||||
-rw-r--r-- | pom.xml | 6 |
3 files changed, 50 insertions, 0 deletions
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 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <executions> + <execution> + <id>check-coverage</id> + <phase>verify</phase> + <goals> + <goal>exec</goal> + </goals> + </execution> + </executions> + <configuration> + <executable>${project.basedir}/check-coverage.sh</executable> + <workingDirectory>${project.basedir}</workingDirectory> + <arguments> + <argument>target/site/jacoco-aggregate/jacoco.xml</argument> + <argument>${jacoco.minimum.coverage}</argument> + </arguments> + </configuration> + </plugin> </plugins> </build> @@ -65,6 +65,7 @@ <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version> <build-helper-maven-plugin.version>1.7</build-helper-maven-plugin.version> <jacoco.version>0.8.2</jacoco.version> + <jacoco.minimum.coverage>60</jacoco.minimum.coverage> <!-- Protocol buffers --> <protobuf.version>3.5.1</protobuf.version> @@ -262,6 +263,11 @@ </dependency> </dependencies> </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>1.6.0</version> + </plugin> </plugins> </pluginManagement> <plugins> |