Skip to content

tools used in GitLab CI docker runner fails while other hosts succeed

Summary

llvm-cov when used on GitLab CI's cloud runner for docker images fails to generate code coverage reports.

llvm-cov when used on local docker runners and GitHub Actions correctly generates a report.

Steps to reproduce

On a local machine:

  1. Clone RediStack & cd into the project
  2. Run docker-compose -f dev.docker-compose.yml up -d (launches Redis image)
  3. Run docker run -it --network "container:redis" --entrypoint /bin/bash --volume "<path to project clone>:/swift-redi-stack" swift:5.1
  4. Inside of the docker image:
    $ cd /swift-redi-stack
    $ swift test --enable-code-coverage
    $ BINARY_PATH=".build/x86_64-unknown-linux/debug/redi-stackPackageTests.xctest"
    $ PROF_DATA_PATH=".build/x86_64-unknown-linux/debug/codecov/default.profdata"
    $ llvm-cov $BINARY_PATH --format=text -instr-profile="$PROF_DATA_PATH"
  5. Compare output to that of GitLab CI running the same docker image: RediStack GitLab CI "failure"
  6. Compare output to that of GitHub Actions running the same docker image: RediStack GitHub Actions mirror "success"

What is the current bug behavior?

llvm-cov report is not generating a report properly. This is only occurring on GitLab CI execution. Local & GitHub Actions execution works.

What is the expected correct behavior?

llvm-cov report should properly parse code coverage data and generate a report.

Relevant logs and/or screenshots

I've tried this on a few different host machines to rule out different system environments, and the only thing that drastically is different is CPU generations.

Each machine is running the same docker image (mirror hosting of official swift:5.1 image).

To get the CPU generation, I run llvm-cov --version.

Host OS CPU gen Generates Report?
iMac 2011 High Sierra sandybridge YES
MBP 2019 Catalina skylake YES
mac mini 2018 Catalina skylake YES
GitHub Actions ubuntu-latest skylake-avx512 YES
GitLab CI tags: docker haswell NO

Output of checks

This only happens w/ GitLab CI

Edited by Nathan Harris