name: test

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:
  test:
    runs-on: ubuntu-24.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 ninja-build
          pip install -U setuptools pytest numpy scipy

      - name: Build
        run: |
          mkdir build && cd build
          cmake .. -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_BENCHMARKS=ON -DBUILD_WITH_TBB=ON -DBUILD_WITH_PCL=ON
          cmake --build . -j$(nproc)
          ctest -j$(nproc)
          cd ..
          pip install . --user
          pytest src/example/basic_registration.py
          pytest src/test/python_test.py
