-
Notifications
You must be signed in to change notification settings - Fork 6
138 lines (106 loc) · 3.5 KB
/
python312dev.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
name: python312dev
on:
workflow_dispatch:
pull_request:
concurrency:
group: python312dev-${{ github.ref }}
cancel-in-progress: false
env:
PIP_BREAK_SYSTEM_PACKAGES: 1
PYTEST_TIMEOUT: 300
# For cmake:
VERBOSE: 1
jobs:
standard:
name: "🐍 3.12-dev • ubuntu-latest • x64"
runs-on: ubuntu-latest
# Hint: Select the label in the PR web view.
if: "contains(github.event.pull_request.labels.*.name, 'gha_wf_python312dev_enable')"
steps:
- name: Show env
run: env
- uses: actions/checkout@v3
- name: Setup Python 3.12-dev
uses: actions/setup-python@v4
with:
python-version: "3.12-dev"
- name: Setup Boost
run: sudo apt-get install libboost-dev
- name: Update CMake
uses: jwlawson/actions-setup-cmake@v1.13
- name: Run pip installs
run: |
python -m pip install --upgrade pip
python -m pip install --prefer-binary -r tests/requirements.txt
# python -m pip install --prefer-binary numpy # SLOW
# python -m pip install --prefer-binary scipy # FAILED ~Nov 2022
- name: Show platform info
run: python -m platform
- name: Show CMake version
run: cmake --version
# FIRST BUILD
- name: Configure C++11
run: >
cmake -S . -B build11
-DCMAKE_VERBOSE_MAKEFILE=ON
-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++ tests C++11
run: cmake --build build11 --target cpptest -j 2
- name: Interface test C++11
run: cmake --build build11 --target test_cmake_build
- name: Clean directory
run: git clean -fdx
# SECOND BUILD
- name: Configure C++17
run: >
cmake -S . -B build17
-DCMAKE_VERBOSE_MAKEFILE=ON
-DPYBIND11_WERROR=ON
-DDOWNLOAD_CATCH=ON
-DDOWNLOAD_EIGEN=ON
-DCMAKE_CXX_STANDARD=17
-DCMAKE_BUILD_TYPE=Debug
- name: Build C++17
run: cmake --build build17 -j 2
- name: Python tests C++17
run: cmake --build build17 --target pytest
- name: C++ tests C++17
run: cmake --build build17 --target cpptest
- name: Interface test C++17
run: cmake --build build17 --target test_cmake_build
- name: Clean directory
run: git clean -fdx
# THIRD BUILD
- name: Configure C++17 max DPYBIND11_INTERNALS_VERSION
run: >
cmake -S . -B build17max
-DCMAKE_VERBOSE_MAKEFILE=ON
-DPYBIND11_WERROR=ON
-DDOWNLOAD_CATCH=ON
-DDOWNLOAD_EIGEN=ON
-DCMAKE_CXX_STANDARD=17
-DCMAKE_BUILD_TYPE=Debug
-DPYBIND11_INTERNALS_VERSION=10000000
- name: Build C++17 max DPYBIND11_INTERNALS_VERSION
run: cmake --build build17max -j 2
- name: Python tests C++17 max DPYBIND11_INTERNALS_VERSION
run: cmake --build build17max --target pytest
- name: C++ tests C++17 max DPYBIND11_INTERNALS_VERSION
run: cmake --build build17max --target cpptest
- name: Interface test C++17 max DPYBIND11_INTERNALS_VERSION
run: cmake --build build17max --target test_cmake_build
# Ensure the setup_helpers module can build packages using setuptools
- name: Setuptools helpers test
run: |
pip install setuptools
pytest tests/extra_setuptools
- name: Clean directory
run: git clean -fdx