name: C/C++ CI on: [push] jobs: build_gcc: name: Ubuntu GCC build and unit tests runs-on: ubuntu-18.04 steps: - name: Update package index run: sudo apt-get update - name: Install boost and lcov run: sudo apt install libboost-all-dev lcov - name: Clone repo uses: actions/checkout@v1 with: submodules: true - name: Configure run: cmake -DCODE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug . - name: Build run: make -j $(nproc) env: CLICOLOR_FORCE: 1 - name: Unit tests run: make test env: CTEST_OUTPUT_ON_FAILURE: 1 - name: Coverage env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} GITHUB_REF: ${{ secrets.GITHUB_REF }} GITHUB_SHA: ${{ secrets.GITHUB_SHA }} run: | lcov --capture --directory . --output-file coverage.info lcov --remove coverage.info "/usr/*" "$(pwd)/3party/*" "*/googletest-src/*" --output-file coverage.info # filter external lcov --list coverage.info # debug info # Uploading report to CodeCov curl -s https://codecov.io/bash | bash -s -- -f coverage.info -B ${GITHUB_REF#refs/heads/} -C ${GITHUB_SHA} || echo "Codecov did not collect coverage reports" build_clang: name: MacOS Clang build and unit tests runs-on: macOS-latest steps: - name: Install Boost run: brew install boost - name: Clone repo uses: actions/checkout@v1 with: submodules: true - name: Configure run: cmake . - name: Build run: make -j $(sysctl -n hw.ncpu) env: CLICOLOR_FORCE: 1 - name: Unit tests run: make test env: CTEST_OUTPUT_ON_FAILURE: 1