Skip to content

Merge pull request #22 from seqan/actions/update_cpm_package_lock #57

Merge pull request #22 from seqan/actions/update_cpm_package_lock

Merge pull request #22 from seqan/actions/update_cpm_package_lock #57

Workflow file for this run

# SPDX-FileCopyrightText: 2006-2025 Knut Reinert & Freie Universität Berlin
# SPDX-FileCopyrightText: 2016-2025 Knut Reinert & MPI für molekulare Genetik
# SPDX-License-Identifier: CC0-1.0
name: Coverage
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
concurrency:
group: coverage-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name != 'push' }}
env:
TZ: Europe/Berlin
defaults:
run:
shell: bash -Eexuo pipefail {0}
jobs:
build:
runs-on: ubuntu-latest
name: ${{ matrix.compiler }}
strategy:
fail-fast: false
matrix:
compiler: ["gcc-latest"]
container:
image: ghcr.io/seqan/${{ matrix.compiler }}
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup cache
uses: seqan/actions/setup-actions-cache@main
with:
ccache_size: 150M
- name: Configure tests
run: |
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_FLAGS="--coverage -fprofile-arcs -ftest-coverage -fprofile-abs-path" \
-DCMAKE_C_FLAGS="--coverage -fprofile-arcs -ftest-coverage -fprofile-abs-path" \
-DCMAKE_EXE_LINKER_FLAGS="-Wl,-lgcov" \
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,-lgcov"
- name: Build and run tests
working-directory: build
run: make -k check
- name: Generate coverage report
run: |
gcovr --root ${GITHUB_WORKSPACE} \
${GITHUB_WORKSPACE}/build \
--filter ${GITHUB_WORKSPACE}/include \
--filter ${GITHUB_WORKSPACE}/src \
--exclude-lines-by-pattern '^\s*}|^\s*};|^\s*\.[^\s]+\s*=\s*\".*\"' \
--exclude-noncode-lines \
--exclude-throw-branches \
--exclude-unreachable-branches \
--merge-mode-functions separate \
-j \
--cobertura \
--output ${GITHUB_WORKSPACE}/build/coverage_report.xml
# https://docs.codecov.com/docs/adding-the-codecov-token
- name: Submit coverage build
uses: codecov/[email protected]
with:
disable_search: true
fail_ci_if_error: false
files: build/coverage_report.xml
plugins: noop
token: ${{ secrets.CODECOV_TOKEN }}