name: Test on: push: branches: [master] pull_request: branches: [master] jobs: test: runs-on: ubuntu-latest strategy: matrix: cc: ['gcc', 'clang', 'tcc'] opt: ['', '-O0', '-O3'] assert: ['--enable-assert', '--disable-assert'] null_guard: ['--enable-null-guard', '--disable-null-guard'] werror: - cflag: '-Werror' mb2: '--without-multiboot2' - cflag: '' mb2: '--with-multiboot2' steps: - uses: actions/checkout@v2 - name: dependencies run: sudo apt install clang tcc - name: autogen run: ./autogen.sh - name: configure run: ./configure --with-arch ${{matrix.assert}} ${{matrix.null_guard}} ${{matrix.werror.mb2}} CC='${{matrix.cc}}' CFLAGS='${{matrix.opt}} ${{matrix.werror.cflag}}' - name: make run: make - name: check run: make check || cat test-suite.log - name: install run: sudo make install cppcheck: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: dependencies run: sudo apt install cppcheck - name: cppcheck source code run: cppcheck --quiet --error-exitcode=1 --std=c99 --enable=warning,style,performance,portability include/ src/ - name: cppcheck examples run: cppcheck --quiet --error-exitcode=1 --std=c99 --enable=warning,style,performance,portability --suppress=duplicateExpression --suppress=staticStringCompare examples/ - name: cppcheck tests run: cppcheck --quiet --error-exitcode=1 --std=c99 --enable=warning,style,performance,portability --suppress=unusedStructMember tests/