Refactor CMake with JRL CMake Modules v2 #239
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 - MacOS/Linux/Windows via Pixi | |
| on: | |
| push: | |
| branches: | |
| - main | |
| 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: | |
| nanoeigenpy-pixi: | |
| name: Standard - ${{ matrix.os }} - Env ${{ matrix.environment }} ${{ matrix.build_type }} | |
| 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 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, macos-15-intel, windows-latest] | |
| environment: [all, all-python-oldest] | |
| build_type: [Release, Debug] | |
| include: | |
| - os: windows-latest | |
| environment: all-clang-cl | |
| build_type: Release | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: .ccache | |
| key: ccache-macos-linux-windows-pixi-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.environment }}-${{ github.sha }} | |
| restore-keys: ccache-macos-linux-windows-pixi-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.environment }}- | |
| - uses: prefix-dev/[email protected] | |
| with: | |
| cache: true | |
| environments: ${{ matrix.environment }} | |
| - name: Clear ccache statistics [MacOS/Linux/Windows] | |
| run: | | |
| pixi run -e ${{ matrix.environment }} ccache -z | |
| - name: Build nanoeigenpy [MacOS/Linux/Windows] | |
| env: | |
| NANOEIGENPY_BUILD_TYPE: ${{ matrix.build_type }} | |
| run: | | |
| pixi run -e ${{ matrix.environment }} build | |
| - name: Test nanoeigenpy [MacOS/Linux/Windows] | |
| run: | | |
| pixi run -e ${{ matrix.environment }} ctest --test-dir build --output-on-failure | |
| - name: Install nanoeigenpy [MacOS/Linux/Windows] | |
| run: | | |
| pixi run -e ${{ matrix.environment }} cmake --build build --target install | |
| - name: Show ccache statistics [MacOS/Linux/Windows] | |
| run: | | |
| pixi run -e ${{ matrix.environment }} ccache -sv | |
| nanoeigenpy-pixi-build: | |
| name: Pixi build - ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, macos-15-intel, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: prefix-dev/[email protected] | |
| env: | |
| CMAKE_BUILD_PARALLEL_LEVEL: 2 | |
| with: | |
| cache: true | |
| environments: test-pixi-build | |
| - name: Test package [MacOS/Linux/Windows] | |
| run: | | |
| pixi run -e test-pixi-build test | |
| check: | |
| if: always() | |
| name: check-macos-linux-windows-pixi | |
| needs: | |
| - nanoeigenpy-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) }} |