Feature error handling #332
Workflow file for this run
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: tests | |
#TODO: run unit tests with different compiler versions of both gcc and clang | |
on: | |
push: | |
branches: [master, main, release/**] | |
pull_request: | |
branches: [master, main, release/**] | |
jobs: | |
build_nix: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest, ubuntu-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Print compiler versions as seen by make | |
run: make compiler_version | |
- name: Run binary | |
run: | | |
make clean bin_run | |
make clean bin_debug_severe | |
- name: Run binary (with sanitizers) | |
# Apple clang does not support "AddressSanitizer: detect_leaks" (at least as of clang-1200.0.32.29) | |
if: ${{ runner.os != 'macOS' }} | |
run: make clean bin_leaks | |
- name: Unit tests (shuffle and repeat 3x) | |
run: make clean test_rep3rnd | |
- name: Severe unit tests (without sanitizers) | |
if: ${{ runner.os == 'macOS' }} | |
run: make clean test_severe | |
- name: Severe unit tests (with sanitizers) | |
# Apple clang does not support "AddressSanitizer: detect_leaks" (at least as of clang-1200.0.32.29) | |
if: ${{ runner.os != 'macOS' }} | |
run: make clean test_leaks | |
check_code_coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Generate coverage report | |
run: CC=gcc CXX=g++ GCOV=gcov make clean clean_cov cov | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
fail_ci_if_error: false # just report, don't fail checks | |
token: ${{ secrets.CODECOV_TOKEN }} |