Skip to content
Permalink
Browse files
Add aggregate coverage report
This is used to report coverage across all modules for the multi-module
project, e.g. use of the legacy.exception and jdkmath packages.
  • Loading branch information
aherbert committed Jun 13, 2022
1 parent 294589d commit e85dd59990a3b47793f5a26ac27e88a9f5ee9e53
Showing 3 changed files with 124 additions and 4 deletions.
@@ -41,11 +41,10 @@ jobs:
with:
distribution: adopt
java-version: ${{ matrix.java }}
- name: Build with Maven
run: mvn -V test jacoco:report --no-transfer-progress
- name: Build with Maven including the docs-archive module using a profile
run: mvn -V -Pdocs test jacoco:report-aggregate --no-transfer-progress

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
# commons-math-core module current skips jacoco report
files: ./commons-math-neuralnet/target/site/jacoco/jacoco.xml,./commons-math-transform/target/site/jacoco/jacoco.xml,./commons-math-legacy-exception/target/site/jacoco/jacoco.xml,./commons-math-legacy-core/target/site/jacoco/jacoco.xml,./commons-math-legacy/target/site/jacoco/jacoco.xml
files: ./docs-archive/target/site/jacoco-aggregate/jacoco.xml
@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math-parent</artifactId>
<version>4.0-SNAPSHOT</version>
</parent>

<artifactId>commons-math-docs</artifactId>
<!-- do not set packaging to pom, because otherwise we will receive
"Not executing Javadoc as the project is not a Java classpath-capable package" -->

<name>Apache Commons Math Documentation</name>
<description>Aggregator module to genenerate Apache Commons Math documentation.</description>

<properties>
<checkstyle.skip>true</checkstyle.skip>
<animal.sniffer.skip>true</animal.sniffer.skip>
<!-- Workaround to avoid duplicating config files. -->
<math.parent.dir>${basedir}/..</math.parent.dir>
<!-- Skip build defaults -->
<jdepend.skip>true</jdepend.skip>
<maven.source.skip>true</maven.source.skip>
<maven.deploy.skip>true</maven.deploy.skip>
<!-- Simple site -->
<spotbugs.skip>true</spotbugs.skip>
<pmd.skip>true</pmd.skip>
<checkstyle.skip>true</checkstyle.skip>
<changes.jira.skip>true</changes.jira.skip>
<skipSurefireReport>true</skipSurefireReport>
</properties>

<!-- Depend on all other modules -->
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math4-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math4-neuralnet</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math4-transform</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math4-legacy-exception</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math4-legacy-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math4-legacy</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>

<reporting>
<plugins>
<!-- Create an aggregate report from the *parent* directory using:
mvn jacoco:report-aggregate -P docs
Requires that 'mvn test' has already been run with the jacoco user agent.
If executed within this directory then jacoco does not collect the
executions from the module dependencies. -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${commons.jacoco.version}</version>
<configuration>
<title>Apache Commons Math</title>
<footer>Code Coverage Report for Apache Commons Math ${project.version}</footer>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>report-aggregate</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>

</project>
@@ -860,6 +860,14 @@ This is avoided by creating an empty directory when svn is not available.
<module>dist-archive</module>
</modules>
</profile>

<profile>
<!-- Include an aggregate module to build test coverage reports -->
<id>docs</id>
<modules>
<module>docs-archive</module>
</modules>
</profile>
</profiles>

<developers>

0 comments on commit e85dd59

Please sign in to comment.