1.6 KiB

id ticket title created tags
LSN-0044 jacoco-reports-consolidation Jenkins Alignment with Consolidated JaCoCo Reports 2026-04-07
infra
gradle
jacoco
jenkins

Context

The Jenkins pipeline was still wired to an outdated coverage task and module-specific report paths. That made CI brittle after the project moved coverage reporting to the root-level consolidated jacocoTestReport task.

Key Decisions

Jenkins Reads Root-Level Coverage

What: Jenkins should run ./gradlew clean test jacocoTestReport and publish coverage from the root project report directory.

Why: Coverage is aggregated across modules, so CI should not depend on a single application subproject path.

Trade-offs: The root task must run after all relevant tests. Jenkins paths must be rooted at the checkout workspace rather than a submodule directory.

Patterns and Algorithms

The canonical report locations are:

  • XML: build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml
  • HTML: build/reports/jacoco/jacocoTestReport/html

Jenkins recordCoverage should consume the XML report. Jenkins publishHTML should expose the HTML directory.

Pitfalls

  • Do not point Jenkins at SRS_APP/build/reports/... or another module-local report when the project expects consolidated root coverage.
  • Do not run only the reporting task without ensuring tests have executed first.
  • Do not assume Jenkins relative paths start inside a Gradle subproject; treat the checkout root as the base.

Takeaways

  • Root-level coverage aggregation needs root-level CI report paths.
  • The Jenkinsfile and Gradle coverage task names must move together.