vlsvrs 1.0.0

VLSV reader with C and Python bindings
Documentation
name: Coverage Report

on:
  workflow_run:
    workflows: [Tests]
    types: [completed]

permissions:
  contents: read

jobs:
  coverage:
    runs-on: ubuntu-latest
    if: ${{ github.event.workflow_run.conclusion == 'success' }}
    steps:
      - name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

      - name: Setup Python
        uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
        with:
          python-version: '3.x'
          architecture: x64

      - name: Install Dependencies
        run: |-
          sudo apt install lcov
          python -m pip install lcov_cobertura

      - name: Run CMake
        run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_C_COMPILER=gcc-13 -DCMAKE_CXX_FLAGS="-fprofile-arcs -ftest-coverage" -DCMAKE_C_FLAGS="-fprofile-arcs -ftest-coverage" -DBUILD_TESTING_FULL=ON -DBUILD_CFP=ON -DZFP_WITH_OPENMP=ON

      - name: Build
        run: cmake --build ${{github.workspace}}/build

      - name: Run Tests
        working-directory: ${{github.workspace}}/build
        run: ctest -j 8

      - name: Generate Coverage Report
        working-directory: ${{github.workspace}}/build
        # for now, suppress mismatch errors (likely gcc/gcov bug)
        run: |-
          lcov -c --directory ${{github.workspace}}/build --output-file coverage.info --ignore-errors mismatch
          lcov --remove coverage.info '${{github.workspace}}/build/tests/*' --remove coverage.info '${{github.workspace}}/tests/*' --remove coverage.info '/usr/include/*' -o coverage.info
          lcov_cobertura ${{github.workspace}}/build/coverage.info -d -o ${{github.workspace}}/build/coverage.xml

      - name: Upload Report to Codecov
        uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5
        with:
          files: ${{github.workspace}}/build/coverage.xml
          token: ${{secrets.CODECOV_TOKEN}}
          fail_ci_if_error: true
          verbose: true