Code coverage visualisation in Merge Requests

@jheimbuck_gl - I am facing a similar issue on a self-hosted GitLab instance (version 13.2.4). I am essentially using the gradle example configuration from the code coverage example documentation. Like @orthodoz I see that the cobertura-coverage.xml file is uploaded and I can download it from the pipeline (although it is cobertura-coverage.xml.gz at that point). In my cobertura-coverage.xml file, the source tag is set to src/main/java and each of the filename attributes on the class elements also starts with src/main/java.

I tried to search through some of the source code and debug a little, but I haven’t really done any work with Vue or Ruby, so progress is a little slow. On the browser side, stepping through some of the JS code, it seems that endpointCoverage is not set and therefore fetchCoverageFiles is never called for me, but I have not been able to trace that back to what condition is missing on the backend.

Here are a few things I have tried without success:

  1. gradle example exactly as shown in the documentation
  2. change the XML file name to match the “default” name shown in the ruby code
  3. upload the XML file as a plain artifact and a report artifact
  4. running in a branch pipeline vs merge (detached) pipeline
  5. both the source and target branches having a coverage report

Below is a snippet from the logs of the job uploading the artifact:

$ python3 /opt/cover2cover.py build/jacoco/jacoco.xml src/main/java > build/cobertura-coverage.xml
$ python3 /opt/source2filename.py build/cobertura-coverage.xml
src/main/java
Uploading artifacts for successful job
Uploading artifacts...
build/cobertura-coverage.xml: found 1 matching files and directories
Uploading artifacts as "cobertura" to coordinator... ok id=5413 responseStatus=201 Created token=******
Job succeeded

Unfortunately, I also cannot provide access to my project as it is proprietary, but I would be happy to provide what additional information I can.