Skip to content

Upgrade codecov action #55

Upgrade codecov action

Upgrade codecov action #55

Workflow file for this run

name: Action workflow
on: [push, pull_request]
jobs:
build:
name: Build Project
strategy:
fail-fast: false
matrix:
configuration:
- Debug
- Release
runs-on: ubuntu-latest
env:
build_dir: .build
steps:
- name: checkout
uses: actions/checkout@v4
- name: configure
shell: bash
run: |
mkdir ${build_dir}
cd ${build_dir}
cmake \
-DCMAKE_BUILD_TYPE=${{ matrix.configuration }} \
-DCMAKE_C_COMPILER=$(which gcc) \
-DCMAKE_CXX_COMPILER=$(which g++) \
..
- name: build all targets
shell: bash
run: |
pushd ${build_dir}
cmake --build . --target all
popd
mv ${build_dir}/tests/tests ./tests-${{ matrix.configuration }}
- name: upload tests binary
uses: actions/upload-artifact@v4
with:
name: tests-${{ matrix.configuration }}
path: tests-${{ matrix.configuration }}
if-no-files-found: error
tests:
name: Run Tests
strategy:
fail-fast: false
matrix:
configuration:
- Debug
- Release
needs: build
runs-on: ubuntu-latest
env:
build_dir: .build
steps:
- name: download tests binary
uses: actions/download-artifact@v4
with:
name: tests-${{ matrix.configuration }}
- name: prepare tests location
shell: bash
run: |
mkdir ${build_dir}
mv ./tests-${{ matrix.configuration }} ${build_dir}/tests
chmod 755 ${build_dir}/tests
- name: run tests
shell: bash
run: |
cd ${build_dir}
./tests -r compact
coverage:
if: ${{ github.event_name == 'push' }}
name: Prepare Coverage Report
strategy:
fail-fast: false
matrix:
configuration:
- Debug
runs-on: ubuntu-latest
env:
build_dir: .build
steps:
- name: checkout
uses: actions/checkout@v4
- name: configure
shell: bash
run: |
mkdir ${build_dir}
cd ${build_dir}
cmake \
-DCMAKE_BUILD_TYPE=${{ matrix.configuration }} \
-DCMAKE_C_COMPILER=$(which gcc) \
-DCMAKE_C_FLAGS="-g --coverage -fprofile-abs-path -fno-early-inlining" \
-DCMAKE_CXX_COMPILER=$(which g++) \
-DCMAKE_CXX_FLAGS="-g --coverage -fprofile-abs-path -fno-early-inlining" \
..
- name: build, run tests, prepare .gcov files
shell: bash
run: |
cd ${build_dir}
cmake --build . --target all
tests/tests -a # generate .gcda files
gcov -pbc $( find tests/ -type f -name '*.gcno' ) # generate .gcov files
- name: upload coverage report
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
disable_search: false
verbose: true
plugin: noop
token: ${{ secrets.CODECOV_TOKEN }}