| name: Config |
| |
| on: |
| workflow_dispatch: |
| pull_request: |
| push: |
| branches: |
| - master |
| - stable |
| - v* |
| |
| jobs: |
| # This tests various versions of CMake in various combinations, to make sure |
| # the configure step passes. |
| cmake: |
| strategy: |
| fail-fast: false |
| matrix: |
| runs-on: [ubuntu-latest, macos-latest, windows-latest] |
| arch: [x64] |
| cmake: [3.18] |
| |
| include: |
| - runs-on: ubuntu-latest |
| arch: x64 |
| cmake: 3.4 |
| |
| - runs-on: macos-latest |
| arch: x64 |
| cmake: 3.7 |
| |
| - runs-on: windows-2016 |
| arch: x86 |
| cmake: 3.8 |
| |
| - runs-on: windows-2016 |
| arch: x86 |
| cmake: 3.18 |
| |
| name: 🐍 3.7 • CMake ${{ matrix.cmake }} • ${{ matrix.runs-on }} |
| runs-on: ${{ matrix.runs-on }} |
| |
| steps: |
| - uses: actions/checkout@v2 |
| |
| - name: Setup Python 3.7 |
| uses: actions/setup-python@v2 |
| with: |
| python-version: 3.7 |
| architecture: ${{ matrix.arch }} |
| |
| - name: Prepare env |
| run: python -m pip install -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@v1.7 |
| with: |
| cmake-version: ${{ matrix.cmake }} |
| |
| # These steps use a directory with a space in it intentionally |
| - name: Make build directories |
| run: mkdir "build dir" |
| |
| - name: Configure |
| working-directory: build dir |
| shell: bash |
| run: > |
| cmake .. |
| -DPYBIND11_WERROR=ON |
| -DDOWNLOAD_CATCH=ON |
| -DPYTHON_EXECUTABLE=$(python -c "import sys; print(sys.executable)") |
| |
| # 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 |