Upgrade codecov action #55
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |