name: Coverage on: push: branches: [ master ] paths-ignore: '**.md' pull_request: branches: [ master ] paths-ignore: '**.md' # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: coverage: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 with: submodules: recursive - name: Install Dependencies run: | sudo apt-get -y update sudo apt-get install --no-install-recommends -y build-essential cmake python3-pip pybind11-dev libeigen3-dev libfmt-dev libtbb-dev libomp-dev libpcl-dev libgtest-dev lcov pip install -U setuptools pytest pytest-cov numpy scipy - name: Build (C++) run: | mkdir build && cd build cmake .. -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_BENCHMARKS=ON -DBUILD_WITH_TBB=ON -DBUILD_WITH_PCL=ON -DENABLE_COVERAGE=ON make -j$(nproc) - name: Test (C++) run: | cd build ctest -j$(nproc) make coverage - name: Build (Python) run: | pip install . --user - name: Test (Python) run: | pytest src/example/basic_registration.py --cov=src --cov-report=xml pytest src/test/python_test.py --cov=src --cov-report=xml - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v4.0.1 with: token: ${{ secrets.CODECOV_TOKEN }} slug: koide3/small_gicp files: build/coverage.info,coverage.xml