diff --git a/.github/workflows/conda/environment_macos_linux.yml b/.github/workflows/conda/environment_macos_linux.yml deleted file mode 100644 index 7180679c5043f03ff414628322fa1beb894c448c..0000000000000000000000000000000000000000 --- a/.github/workflows/conda/environment_macos_linux.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: coal -channels: - - conda-forge - - nodefaults -dependencies: - - eigen - - octomap - - assimp - - numpy - - libboost-devel - - libboost-python-devel - - eigenpy - - python - - doxygen<1.9.8|>=1.11 - - lxml - - pylatexenc - - qhull - - qhull-static - - cmake - - ccache - - cxx-compiler - - llvm-openmp - - pkg-config - - ninja diff --git a/.github/workflows/conda/environment_windows.yml b/.github/workflows/conda/environment_windows.yml deleted file mode 100644 index c1c99096ae8ea67c7f7bdb8a82f65504b8521b4b..0000000000000000000000000000000000000000 --- a/.github/workflows/conda/environment_windows.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: coal -channels: - - conda-forge - - nodefaults -dependencies: - - eigen - - octomap - - assimp - - numpy - - libboost-devel - - libboost-python-devel - - eigenpy - - python - - doxygen<1.9.8|>=1.11 - - lxml - - pylatexenc - - qhull - - cmake - - ccache - - pkg-config - - ninja diff --git a/.github/workflows/macos-linux-conda.yml b/.github/workflows/macos-linux-conda.yml deleted file mode 100644 index 913ed513b03343f08ed6addf74ed8ce62eb6fba4..0000000000000000000000000000000000000000 --- a/.github/workflows/macos-linux-conda.yml +++ /dev/null @@ -1,94 +0,0 @@ -name: Build Coal for Mac OS X/Linux via Conda - -on: [push,pull_request] - -jobs: - coal-conda: - name: CI on ${{ matrix.os }} with Conda Python ${{ matrix.python-version }} - ${{ matrix.build_type }} ${{ matrix.cxx_options }} - runs-on: ${{ matrix.os }} - env: - CCACHE_BASEDIR: "${GITHUB_WORKSPACE}" - CCACHE_DIR: "${GITHUB_WORKSPACE}/.ccache" - CCACHE_COMPRESS: true - CCACHE_COMPRESSLEVEL: 6 - - strategy: - fail-fast: false - matrix: - os: ["ubuntu-latest", "macos-latest"] - python-version: ["3.8", "3.12"] - cxx_options: ['', '-mavx2'] - build_type: [Release, Debug] - exclude: - - build_type: Debug - cxx_options: -mavx2 - os: macos-latest - - build_type: Release - cxx_options: -mavx2 - os: macos-latest - - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - - uses: actions/cache@v3 - with: - path: .ccache - key: ccache-macos-linux-conda-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.cxx_options }}-${{ matrix.python-version }}-${{ github.sha }} - restore-keys: ccache-macos-linux-conda-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.cxx_options }}-${{ matrix.python-version }}- - - - uses: conda-incubator/setup-miniconda@v3 - with: - activate-environment: coal - auto-update-conda: true - environment-file: .github/workflows/conda/environment_macos_linux.yml - python-version: ${{ matrix.python-version }} - auto-activate-base: false - - - name: Build Coal - shell: bash -el {0} - run: | - conda list - echo $CONDA_PREFIX - - mkdir build - cd build - - cmake .. \ - -G "Ninja" \ - -DBUILD_DOCUMENTATION=ON \ - -DINSTALL_DOCUMENTATION=ON \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \ - -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ - -DCMAKE_CXX_FLAGS=${{ matrix.cxx_options }} \ - -DPYTHON_EXECUTABLE=$(which python3) \ - -DGENERATE_PYTHON_STUBS=ON \ - -DCOAL_HAS_QHULL=ON \ - -DBUILD_DOCUMENTATION=ON \ - -DINSTALL_DOCUMENTATION=ON - cmake --build . -j2 - ctest --output-on-failure - cmake --install . - - - name: Uninstall Coal - shell: bash -el {0} - run: | - cd build - cmake --build . --target uninstall - - check: - if: always() - name: check-macos-linux-conda - - needs: - - coal-conda - - runs-on: Ubuntu-latest - - steps: - - name: Decide whether the needed jobs succeeded or failed - uses: re-actors/alls-green@release/v1 - with: - jobs: ${{ toJSON(needs) }} diff --git a/.github/workflows/macos-linux-windows-pixi.yml b/.github/workflows/macos-linux-windows-pixi.yml new file mode 100644 index 0000000000000000000000000000000000000000..85ea37509bc8d7b9b2940ec14bdd560feae13fb3 --- /dev/null +++ b/.github/workflows/macos-linux-windows-pixi.yml @@ -0,0 +1,101 @@ +name: CI - MacOS/Linux/Windows via Pixi + +on: + push: + paths-ignore: + - .gitlab-ci.yml + - .gitignore + - '*.md' + - CITATION.* + - LICENSE + - colcon.pkg + - .pre-commit-config.yaml + - CHANGELOG.md + - development/*.md + pull_request: + paths-ignore: + - .gitlab-ci.yml + - .gitignore + - '*.md' + - CITATION.* + - LICENSE + - colcon.pkg + - .pre-commit-config.yaml + - CHANGELOG.md + - development/*.md +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + coal-pixi: + name: ${{ matrix.os }} - Env ${{ matrix.environment }} ${{ matrix.build_type }} ${{ matrix.cxx_options }} + runs-on: ${{ matrix.os }} + env: + CCACHE_BASEDIR: "${GITHUB_WORKSPACE}" + CCACHE_DIR: "${GITHUB_WORKSPACE}/.ccache" + CCACHE_COMPRESS: true + CCACHE_COMPRESSLEVEL: 6 + + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, macos-13] + environment: [all, all-py39] + build_type: [Release, Debug] + cxx_options: ['', '-mavx2'] + exclude: + - os: macos-latest + cxx_options: '-mavx2' + - os: macos-13 + cxx_options: '-mavx2' + + include: + - os: windows-latest + environment: all + cxx_options: '' + build_type: Release + - os: windows-latest + environment: all-clang-cl + cxx_options: '' + build_type: Release + + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - uses: actions/cache@v4 + with: + path: .ccache + key: ccache-macos-linux-windows-pixi-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.cxx_options }}-${{ matrix.environment }}-${{ github.sha }} + restore-keys: ccache-macos-linux-windows-pixi-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.cxx_options }}-${{ matrix.environment }}- + + - uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: v0.37.0 + cache: true + environments: ${{ matrix.environment }} + + - name: Build Coal [MacOS/Linux/Windows] + env: + CMAKE_BUILD_PARALLEL_LEVEL: 2 + COAL_BUILD_TYPE: ${{ matrix.build_type }} + COAL_CXX_FLAGS: ${{ matrix.cxx_options }} + run: | + pixi run -e ${{ matrix.environment }} test + + check: + if: always() + name: check-macos-linux-windows-pixi + + needs: + - coal-pixi + + runs-on: Ubuntu-latest + + steps: + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} diff --git a/.github/workflows/windows-conda-clang.yml b/.github/workflows/windows-conda-clang.yml deleted file mode 100644 index 2c76d7dcfd3d3381f767b1fb9d2468c83aa1397f..0000000000000000000000000000000000000000 --- a/.github/workflows/windows-conda-clang.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: Build Coal for Windows (CLANG) via Conda -on: [push,pull_request] - -jobs: - build: - runs-on: ${{ matrix.os }} - env: - CCACHE_BASEDIR: "${GITHUB_WORKSPACE}" - CCACHE_DIR: "${GITHUB_WORKSPACE}/.ccache" - CCACHE_COMPRESS: true - CCACHE_COMPRESSLEVEL: 6 - - strategy: - fail-fast: false - matrix: - name: [windows-latest-clang-cl] - - include: - - name: windows-latest-clang-cl - os: windows-2019 - compiler: clang-cl - - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - - uses: actions/cache@v3 - with: - path: .ccache - key: ccache-windows-conda-clang-${{ matrix.os }}-${{ matrix.compiler }}-${{ github.sha }} - restore-keys: ccache-windows-conda-clang-${{ matrix.os }}-${{ matrix.compiler }}- - - - uses: conda-incubator/setup-miniconda@v3 - with: - activate-environment: coal - auto-update-conda: true - environment-file: .github/workflows/conda/environment_windows.yml - python-version: "3.10" - auto-activate-base: false - - - name: Build Coal - shell: cmd /C CALL {0} - run: | - call "%programfiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - :: Tell Ninja to use clang-cl - set CC=clang-cl - set CXX=clang-cl - - :: Create build - mkdir build - pushd build - - cmake ^ - -G "Ninja" ^ - -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ^ - -DCMAKE_BUILD_TYPE=Release ^ - -DGENERATE_PYTHON_STUBS=ON ^ - -DPYTHON_SITELIB=%CONDA_PREFIX%\Lib\site-packages ^ - -DPYTHON_EXECUTABLE=%CONDA_PREFIX%\python.exe ^ - -DCOAL_HAS_QHULL=ON ^ - -DBUILD_PYTHON_INTERFACE=ON ^ - .. - if errorlevel 1 exit 1 - - :: Build and Install - cmake --build . --config Release --target all - if errorlevel 1 exit 1 - - :: Testing - ctest --output-on-failure -C Release - if errorlevel 1 exit 1 - - :: Test Python import - cmake -E env PYTHONPATH=%cd%\python python -c "import coal" - if errorlevel 1 exit 1 - - check: - if: always() - name: check-windows-conda-clang - - needs: - - build - - runs-on: Ubuntu-latest - - steps: - - name: Decide whether the needed jobs succeeded or failed - uses: re-actors/alls-green@release/v1 - with: - jobs: ${{ toJSON(needs) }} diff --git a/.github/workflows/windows-conda-v142.yml b/.github/workflows/windows-conda-v142.yml deleted file mode 100644 index d4dddab19ab8e514e220c78af0d70a7f956b3d46..0000000000000000000000000000000000000000 --- a/.github/workflows/windows-conda-v142.yml +++ /dev/null @@ -1,89 +0,0 @@ -name: Build Coal for Windows (v142) via Conda -on: [push,pull_request] - -jobs: - build: - runs-on: ${{ matrix.os }} - env: - CCACHE_BASEDIR: "${GITHUB_WORKSPACE}" - CCACHE_DIR: "${GITHUB_WORKSPACE}/.ccache" - CCACHE_COMPRESS: true - CCACHE_COMPRESSLEVEL: 6 - - strategy: - fail-fast: false - matrix: - name: [windows-latest] - - include: - - name: windows-latest - os: windows-2019 - - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - - uses: actions/cache@v3 - with: - path: .ccache - key: ccache-windows-conda-vs-${{ matrix.os }}-${{ matrix.compiler }}-${{ github.sha }} - restore-keys: ccache-windows-conda-vs-${{ matrix.os }}-${{ matrix.compiler }}- - - - uses: conda-incubator/setup-miniconda@v3 - with: - activate-environment: coal - auto-update-conda: true - environment-file: .github/workflows/conda/environment_windows.yml - python-version: "3.10" - auto-activate-base: false - - - name: Build Coal - shell: cmd /C CALL {0} - run: | - call "%programfiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - - :: Create build - mkdir build - pushd build - - :: Configure - cmake ^ - -G "Ninja" ^ - -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ^ - -DCMAKE_BUILD_TYPE=Release ^ - -DGENERATE_PYTHON_STUBS=ON ^ - -DPYTHON_SITELIB=%CONDA_PREFIX%\Lib\site-packages ^ - -DPYTHON_EXECUTABLE=%CONDA_PREFIX%\python.exe ^ - -DCOAL_HAS_QHULL=ON ^ - -DBUILD_PYTHON_INTERFACE=ON ^ - .. - if errorlevel 1 exit 1 - - :: Build and Install - cmake --build . --config Release --target all - if errorlevel 1 exit 1 - - :: Testing - ctest --output-on-failure -C Release - if errorlevel 1 exit 1 - - :: Test Python import - cmake -E env PYTHONPATH=%cd%\python python -c "import coal" - if errorlevel 1 exit 1 - - check: - if: always() - name: check-windows-conda-v142 - - needs: - - build - - runs-on: Ubuntu-latest - - steps: - - name: Decide whether the needed jobs succeeded or failed - uses: re-actors/alls-green@release/v1 - with: - jobs: ${{ toJSON(needs) }}