name: Config on: workflow_dispatch: pull_request: types: - opened - synchronize - reopened - ready_for_review push: branches: - master - stable - v* permissions: contents: read jobs: # This tests various versions of CMake in various combinations, to make sure # the configure step passes. cmake: if: github.event.pull_request.draft == false strategy: fail-fast: false matrix: include: - runs-on: ubuntu-22.04 cmake: "3.15" - runs-on: ubuntu-24.04 cmake: "3.26" - runs-on: ubuntu-24.04 cmake: "3.29" - runs-on: macos-13 cmake: "3.15" - runs-on: macos-14 cmake: "4.0" - runs-on: windows-latest cmake: "4.0" name: 🐍 3.11 • CMake ${{ matrix.cmake }} • ${{ matrix.runs-on }} runs-on: ${{ matrix.runs-on }} steps: - uses: actions/checkout@v5 - name: Setup Python 3.11 uses: actions/setup-python@v6 with: python-version: 3.11 - name: Install uv uses: astral-sh/setup-uv@v6 - name: Prepare env run: uv pip install --python=python --system -r tests/requirements.txt # An action for adding a specific version of CMake: # https://github.com/jwlawson/actions-setup-cmake - name: Setup CMake ${{ matrix.cmake }} uses: jwlawson/actions-setup-cmake@v2.0 with: cmake-version: ${{ matrix.cmake }} # These steps use a directory with a space in it intentionally - name: Configure shell: bash run: cmake -S. -B"build dir" -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON # Only build and test if this was manually triggered in the GitHub UI - name: Build working-directory: build dir if: github.event_name == 'workflow_dispatch' run: cmake --build . --config Release - name: Test working-directory: build dir if: github.event_name == 'workflow_dispatch' run: cmake --build . --config Release --target check