apache / pulsar

Apache Pulsar - distributed pub-sub messaging system
https://pulsar.apache.org/
Apache License 2.0
14.15k stars 3.57k forks source link

[fix][ci] Fix jacoco code coverage report aggregation #22964

Closed lhotari closed 3 months ago

lhotari commented 3 months ago

Motivation

Jacoco code coverage report aggregation is currently broken in CI. This broke with #22892 changes.

Example failure

  Error: Exception in thread "main" java.io.IOException: Error while analyzing /tmp/jacocoDir/pulsar_lib/org.apache.pulsar-jetcd-core-shaded-3.4.0-SNAPSHOT-shaded.jar@META-INF/versions/11/io/vertx/core/DeploymentOptions.class with JaCoCo 0.8.11.202310140853/f33756c.
    at org.jacoco.cli.internal.core.analysis.Analyzer.analyzerError(Analyzer.java:163)
    at org.jacoco.cli.internal.core.analysis.Analyzer.analyzeClass(Analyzer.java:135)
    at org.jacoco.cli.internal.core.analysis.Analyzer.analyzeClass(Analyzer.java:158)
    at org.jacoco.cli.internal.core.analysis.Analyzer.analyzeAll(Analyzer.java:195)
    at org.jacoco.cli.internal.core.analysis.Analyzer.analyzeZip(Analyzer.java:267)
    at org.jacoco.cli.internal.core.analysis.Analyzer.analyzeAll(Analyzer.java:198)
    at org.jacoco.cli.internal.core.analysis.Analyzer.analyzeAll(Analyzer.java:228)
    at org.jacoco.cli.internal.core.analysis.Analyzer.analyzeAll(Analyzer.java:223)
    at org.jacoco.cli.internal.commands.Report.analyze(Report.java:110)
    at org.jacoco.cli.internal.commands.Report.execute(Report.java:84)
    at org.jacoco.cli.internal.Main.execute(Main.java:90)
    at org.jacoco.cli.internal.Main.main(Main.java:105)
  Caused by: java.lang.IllegalStateException: Can't add different class with same name: org/apache/pulsar/jetcd/shaded/io/vertx/core/DeploymentOptions
    at org.jacoco.cli.internal.core.analysis.CoverageBuilder.visitCoverage(CoverageBuilder.java:106)
    at org.jacoco.cli.internal.core.analysis.Analyzer$1.visitEnd(Analyzer.java:100)
    at org.jacoco.cli.internal.asm.ClassVisitor.visitEnd(ClassVisitor.java:395)
    at org.jacoco.cli.internal.core.internal.flow.ClassProbesAdapter.visitEnd(ClassProbesAdapter.java:100)
    at org.jacoco.cli.internal.asm.ClassReader.accept(ClassReader.java:749)
    at org.jacoco.cli.internal.asm.ClassReader.accept(ClassReader.java:425)
    at org.jacoco.cli.internal.core.analysis.Analyzer.analyzeClass(Analyzer.java:117)
    at org.jacoco.cli.internal.core.analysis.Analyzer.analyzeClass(Analyzer.java:133)

Modifications

Documentation

github-actions[bot] commented 3 months ago

@lhotari Please add the following content to your PR description and select a checkbox:

- [ ] `doc` <!-- Your PR contains doc changes -->
- [ ] `doc-required` <!-- Your PR changes impact docs and you will update later -->
- [ ] `doc-not-needed` <!-- Your PR changes do not impact docs -->
- [ ] `doc-complete` <!-- Docs have been already added -->