name: Build & Test on: push: branches: [main] pull_request: branches: [main] jobs: build-and-test: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y cmake g++ libeigen3-dev - name: Configure run: cmake -B build -DCMAKE_BUILD_TYPE=Release - name: Build run: cmake --build build -j$(nproc) - name: Test run: cd build && ctest --output-on-failure - name: Generate docs run: | sudo apt-get install -y doxygen graphviz doxygen Doxyfile - name: Upload docs uses: actions/upload-artifact@v3 with: name: api-docs path: docs/api/html/ python-bindings: runs-on: ubuntu-22.04 needs: build-and-test steps: - uses: actions/checkout@v3 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y cmake g++ libeigen3-dev python3 python3-pip python3-venv - name: Build Python bindings run: | cmake -B build_py -DVDE_BUILD_PYTHON=ON -DCMAKE_BUILD_TYPE=Release cmake --build build_py -j$(nproc) - name: Install & test import run: | python3 -m venv .venv . .venv/bin/activate pip install pybind11 PYTHONPATH=build_py/python:$PYTHONPATH python3 -c "import vde; print(f'VDE {vde.__version__} OK')"