chore: configure coveralls as code coverage backup

This commit is contained in:
Marcus Holland-Moritz 2025-08-17 12:34:05 +02:00
parent a1b945cce4
commit 8180523442
3 changed files with 33 additions and 5 deletions

View File

@ -422,10 +422,11 @@ esac
if [[ "-$BUILD_TYPE-" == *-coverage-* ]]; then
rm -f /tmp-runner/dwarfs-coverage.txt
rm -f /tmp-runner/dwarfs-coverage.info
_objects="$(for i in mkdwarfs dwarfs dwarfsck dwarfsextract *_test *_tests ricepp/ricepp_test; do echo $i; done | sed -e's/^/-object=/')"
llvm-profdata$CLANG_VERSION merge -sparse profile/* -o dwarfs.profdata
llvm-cov$CLANG_VERSION show -instr-profile=dwarfs.profdata \
$(for i in mkdwarfs dwarfs dwarfsck dwarfsextract *_test *_tests ricepp/ricepp_test; do echo $i; done | sed -e's/^/-object=/') \
>/tmp-runner/dwarfs-coverage.txt
llvm-cov$CLANG_VERSION export -format=lcov -compilation-dir="${GITHUB_WORKSPACE}" -instr-profile=dwarfs.profdata \
-ignore-filename-regex='(^|/)(fsst|folly|fbthrift)/' $_objects >/tmp-runner/dwarfs-coverage.lcov
fi
if [[ "-$BUILD_TYPE-" == *-static-* ]]; then

View File

@ -81,6 +81,7 @@ jobs:
--env BUILD_ARCH=${{ inputs.build_arch }} \
--env CROSS_ARCH=${{ inputs.cross_arch }} \
--env BUILD_DIST=${{ inputs.build_dist }} \
--env GITHUB_WORKSPACE \
--env GITHUB_REF_NAME \
--env GITHUB_REF_TYPE \
--env GITHUB_RUN_ID \
@ -88,14 +89,24 @@ jobs:
--env GITHUB_RUN_ATTEMPT \
dwarfs-linux-build-${{ inputs.build_dist }}
- name: Upload Coverage Data
- name: Upload Coverage Data (Codecov)
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ${{ runner.temp }}/dwarfs-coverage.txt
files: ${{ runner.temp }}/dwarfs-coverage.lcov
fail_ci_if_error: false
if: ${{ inputs.upload_coverage }}
- name: Upload Coverage Data (Coveralls)
uses: coverallsapp/github-action@v2
with:
file: ${{ runner.temp }}/dwarfs-coverage.lcov
format: 'lcov'
fail-on-error: false
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
if: ${{ inputs.upload_coverage }}
- name: Prepare Artifact Upload
run: cat ${{ runner.temp }}/artifacts.env >> $GITHUB_ENV
if: ${{ inputs.upload_artifacts }}
@ -132,3 +143,13 @@ jobs:
env:
ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY: 5
if: ${{ inputs.upload_artifacts }}
- name: Upload Coverage Data Artifact
uses: actions/upload-artifact@v4
with:
name: dwarfs-coverage
path: ${{ runner.temp }}/dwarfs-coverage.*
if-no-files-found: error
env:
ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY: 5
if: ${{ inputs.upload_coverage }}

View File

@ -834,6 +834,12 @@ foreach(tgt ${LIBDWARFS_TARGETS} ${LIBDWARFS_OBJECT_TARGETS} dwarfs_test_helpers
-fno-omit-frame-pointer)
target_link_options(${tgt} PRIVATE -fprofile-instr-generate
-fcoverage-mapping)
if(DEFINED ENV{GITHUB_WORKSPACE})
target_compile_options(${tgt} PRIVATE -fcoverage-prefix-map=${CMAKE_SOURCE_DIR}=$ENV{GITHUB_WORKSPACE}
-ffile-compilation-dir=$ENV{GITHUB_WORKSPACE})
target_link_options(${tgt} PRIVATE -fcoverage-prefix-map=${CMAKE_SOURCE_DIR}=$ENV{GITHUB_WORKSPACE}
-ffile-compilation-dir=$ENV{GITHUB_WORKSPACE})
endif()
endif()
target_compile_definitions(${tgt} PRIVATE DWARFS_COVERAGE_ENABLED=1)
endif()