Refactor CMake with JRL CMake Modules v2 #145
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI - Pixi - Windows/Linux/macOS | |
| on: | |
| push: | |
| branches: | |
| - devel | |
| pull_request: | |
| paths-ignore: | |
| - CHANGELOG.md | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| pixi: | |
| name: Pixi CI - ${{ matrix.os }} - ${{ matrix.build_type }} - C++${{ matrix.cxx_std }} | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| CCACHE_BASEDIR: ${{ github.workspace }} | |
| CCACHE_DIR: ${{ github.workspace }}/.ccache | |
| CCACHE_COMPRESS: true | |
| CCACHE_COMPRESSLEVEL: 6 | |
| # Since pixi will install a compiler, the compiler mtime will be changed. | |
| # This can invalidate the cache (https://ccache.dev/manual/latest.html#config_compiler_check) | |
| CCACHE_COMPILERCHECK: content | |
| CMAKE_BUILD_TYPE: ${{ matrix.build_type }} | |
| PROXSUITE_CXX_STANDARD: ${{ matrix.cxx_std }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| build_type: [Release, Debug] | |
| cxx_std: [17, 20] | |
| pixi_environment: [default] | |
| os: [ubuntu-24.04, macos-15-intel, macos-26, windows-2025] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/cache@v5 | |
| with: | |
| path: ${{ env.CCACHE_DIR }} | |
| key: ccache-pixi-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.cxx_std }}-${{ github.sha }} | |
| restore-keys: ccache-pixi-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.cxx_std }}- | |
| - name: Install Pixi | |
| uses: prefix-dev/setup-pixi@v0.9.3 | |
| with: | |
| environments: default | |
| - name: Configure | |
| run: pixi run -e default configure --fresh --log-level=DEBUG | |
| - name: Build | |
| run: pixi run -e default build --verbose --parallel 1 | |
| - name: Install | |
| run: pixi run -e default install | |
| - name: Test Python import | |
| run: pixi run -e default test-import-python | |
| - name: Run C++ tests | |
| if: ${{ !(startsWith(matrix.os, 'windows-') && matrix.build_type == 'Debug') }} | |
| run: pixi run -e default test | |
| - name: Run packaging tests | |
| run: pixi run -e default test-packaging | |
| - name: Uninstall | |
| run: pixi run -e default uninstall | |
| # pixi-build: | |
| # name: Pixi Build CI | |
| # strategy: | |
| # fail-fast: false | |
| # matrix: | |
| # os: [ubuntu-24.04, macos-15-intel, macos-26, windows-2025] | |
| # runs-on: ${{ matrix.os }} | |
| # steps: | |
| # - uses: actions/checkout@v6 | |
| # - name: Install Pixi | |
| # uses: prefix-dev/setup-pixi@v0.9.3 | |
| # with: | |
| # cache: false | |
| # environments: test-pixi-build | |
| # - name: Run Pixi build test | |
| # run: pixi run -e test-pixi-build test | |
| prek: | |
| name: Prek CI | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install Pixi | |
| uses: prefix-dev/setup-pixi@v0.9.3 | |
| with: | |
| environments: prek | |
| - name: Run Prek | |
| run: pixi run -e prek prek | |
| check: | |
| if: always() | |
| name: check-linux | |
| needs: | |
| - prek | |
| - pixi | |
| # - pixi-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) }} | |