|
name: Upstream |
|
|
|
on: |
|
workflow_dispatch: |
|
pull_request: |
|
|
|
permissions: |
|
contents: read |
|
|
|
concurrency: |
|
group: upstream-${{ github.ref }} |
|
cancel-in-progress: true |
|
|
|
env: |
|
PIP_BREAK_SYSTEM_PACKAGES: 1 |
|
|
|
VERBOSE: 1 |
|
|
|
jobs: |
|
standard: |
|
name: "🐍 3.13 latest • ubuntu-latest • x64" |
|
runs-on: ubuntu-latest |
|
|
|
if: "contains(github.event.pull_request.labels.*.name, 'python dev')" |
|
|
|
steps: |
|
- uses: actions/checkout@v4 |
|
|
|
- name: Setup Python 3.13 |
|
uses: actions/setup-python@v5 |
|
with: |
|
python-version: "3.13" |
|
allow-prereleases: true |
|
|
|
- name: Setup Boost |
|
run: sudo apt-get install libboost-dev |
|
|
|
- name: Update CMake |
|
uses: jwlawson/actions-setup-cmake@v1.14 |
|
|
|
- name: Run pip installs |
|
run: | |
|
python -m pip install --upgrade pip |
|
python -m pip install -r tests/requirements.txt |
|
|
|
- name: Show platform info |
|
run: | |
|
python -m platform |
|
cmake --version |
|
pip list |
|
|
|
|
|
- name: Configure C++11 |
|
run: > |
|
cmake -S . -B build11 |
|
-DPYBIND11_WERROR=ON |
|
-DDOWNLOAD_CATCH=ON |
|
-DDOWNLOAD_EIGEN=ON |
|
-DCMAKE_CXX_STANDARD=11 |
|
-DCMAKE_BUILD_TYPE=Debug |
|
|
|
- name: Build C++11 |
|
run: cmake --build build11 -j 2 |
|
|
|
- name: Python tests C++11 |
|
run: cmake --build build11 --target pytest -j 2 |
|
|
|
- name: C++11 tests |
|
run: cmake --build build11 --target cpptest -j 2 |
|
|
|
- name: Interface test C++11 |
|
run: cmake --build build11 --target test_cmake_build |
|
|
|
|
|
- name: Configure C++17 |
|
run: > |
|
cmake -S . -B build17 |
|
-DPYBIND11_WERROR=ON |
|
-DDOWNLOAD_CATCH=ON |
|
-DDOWNLOAD_EIGEN=ON |
|
-DCMAKE_CXX_STANDARD=17 |
|
|
|
- name: Build C++17 |
|
run: cmake --build build17 -j 2 |
|
|
|
- name: Python tests C++17 |
|
run: cmake --build build17 --target pytest |
|
|
|
- name: C++17 tests |
|
run: cmake --build build17 --target cpptest |
|
|
|
|
|
- name: Configure (unstable ABI) |
|
run: > |
|
cmake -S . -B build17max |
|
-DPYBIND11_WERROR=ON |
|
-DDOWNLOAD_CATCH=ON |
|
-DDOWNLOAD_EIGEN=ON |
|
-DCMAKE_CXX_STANDARD=17 |
|
-DPYBIND11_INTERNALS_VERSION=10000000 |
|
|
|
- name: Build (unstable ABI) |
|
run: cmake --build build17max -j 2 |
|
|
|
- name: Python tests (unstable ABI) |
|
run: cmake --build build17max --target pytest |
|
|
|
- name: Interface test (unstable ABI) |
|
run: cmake --build build17max --target test_cmake_build |
|
|
|
|
|
|
|
- name: Setuptools helpers test |
|
run: | |
|
pip install setuptools |
|
pytest tests/extra_setuptools |
|
|