name: Build & Test on: workflow_dispatch: pull_request: push: jobs: default: name: ${{ matrix.os }}-${{ matrix.arch }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - os: ubuntu-latest pybuilds: cp3{10,11,12,13}-manylinux_x86_64 arch: x86_64 id: linux_x86_64 - os: ubuntu-24.04-arm pybuilds: cp3{10,11,12,13}-manylinux_aarch64 arch: aarch64 id: linux_arm64 - os: macos-13 pybuilds: cp3{10,11,12,13}-macosx_x86_64 arch: x86_64 id: macos_x86 - os: macos-15 pybuilds: cp3{10,11,12,13}-macosx_arm64 arch: arm64 id: macos_arm64 steps: - uses: actions/checkout@v4 with: submodules: 'recursive' - name: "Install Linux dependencies" if: runner.os == 'Linux' run: | sudo apt-get update -y -qq && sudo apt-get install -y -qq \ libboost-program-options-dev \ libboost-serialization-dev \ libboost-test-dev \ libeigen3-dev \ libflann-dev \ libtriangle-dev \ libyaml-cpp-dev - name: "Install macOS dependencies" if: runner.os == 'macOS' run: brew install boost eigen flann ode yaml-cpp - name: "Install Windows dependencies" if: runner.os == 'Windows' uses: lukka/run-vcpkg@v11 id: runvcpkg with: vcpkgGitCommitId: da4b78d35084ec4e9808aa02017028da03b8d2ab vcpkgTriplet: 'x64-windows' vcpkgArguments: 'boost-dynamic-bitset boost-filesystem boost-graph boost-odeint boost-program-options boost-serialization boost-system boost-test eigen3 flann yaml-cpp' - name: Build & Test (Linux, macOS) if: runner.os != 'Windows' uses: ashutoshvarma/action-cmake-build@master with: build-dir: ${{ runner.workspace }}/build build-type: Release configure-options: -DOMPL_REGISTRATION=OFF -DOMPL_BUILD_DEMOS=OFF -DVAMP_PORTABLE_BUILD=ON -DCMAKE_INSTALL_PREFIX=${{ runner.workspace }}/install -DOMPL_PYTHON_INSTALL_DIR=${{ runner.workspace }}/install/python run-test: true ctest-options: --output-on-failure install-build: true - name: Test CMake target linkage to ompl::ompl if: runner.os != 'Windows' run: | cd tests/cmake_export cmake -B build -DCMAKE_INSTALL_PREFIX=${{ runner.workspace }}/install cmake --build build - name: Build & Test (Windows) if: runner.os == 'Windows' uses: ashutoshvarma/action-cmake-build@master with: build-dir: ${{ runner.workspace }}/build build-type: Release configure-options: -DOMPL_REGISTRATION=OFF -DOMPL_BUILD_DEMOS=OFF -DVAMP_PORTABLE_BUILD=ON -DMACHINE_SPEED_FACTOR=5.0 -DCMAKE_INSTALL_PREFIX=${{ runner.workspace }}/install -DOMPL_PYTHON_INSTALL_DIR=${{ runner.workspace }}/install/python -DCMAKE_TOOLCHAIN_FILE=${{ runner.workspace }}/ompl/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_GENERATOR_PLATFORM=x64 run-test: true ctest-options: --output-on-failure install-build: true