|
5 | 5 | pull_request: |
6 | 6 | push: |
7 | 7 | branches: |
8 | | - - master |
9 | | - - stable |
10 | | - - v* |
| 8 | + - drake |
11 | 9 |
|
12 | 10 | jobs: |
13 | | - standard: |
14 | | - strategy: |
15 | | - matrix: |
16 | | - runs-on: [ubuntu-latest, windows-latest, macos-latest] |
17 | | - arch: [x64] |
18 | | - python: |
19 | | - - 2.7 |
20 | | - - 3.5 |
21 | | - - 3.8 |
22 | | - - pypy2 |
23 | | - - pypy3 |
24 | | - |
25 | | - include: |
26 | | - - runs-on: ubuntu-latest |
27 | | - python: 3.6 |
28 | | - arch: x64 |
29 | | - args: > |
30 | | - -DPYBIND11_FINDPYTHON=ON |
31 | | - - runs-on: windows-2016 |
32 | | - python: 3.7 |
33 | | - arch: x86 |
34 | | - args2: > |
35 | | - -DCMAKE_CXX_FLAGS="/permissive- /EHsc /GR" |
36 | | - - runs-on: windows-latest |
37 | | - python: 3.6 |
38 | | - arch: x64 |
39 | | - args: > |
40 | | - -DPYBIND11_FINDPYTHON=ON |
41 | | - - runs-on: windows-latest |
42 | | - python: 3.7 |
43 | | - arch: x64 |
44 | | - |
45 | | - - runs-on: ubuntu-latest |
46 | | - python: 3.9-dev |
47 | | - arch: x64 |
48 | | - - runs-on: macos-latest |
49 | | - python: 3.9-dev |
50 | | - arch: x64 |
51 | | - args: > |
52 | | - -DPYBIND11_FINDPYTHON=ON |
53 | | -
|
54 | | - exclude: |
55 | | - # Currently 32bit only, and we build 64bit |
56 | | - - runs-on: windows-latest |
57 | | - python: pypy2 |
58 | | - arch: x64 |
59 | | - - runs-on: windows-latest |
60 | | - python: pypy3 |
61 | | - arch: x64 |
62 | | - |
63 | | - # Currently broken on embed_test |
64 | | - - runs-on: windows-latest |
65 | | - python: 3.8 |
66 | | - arch: x64 |
67 | | - - runs-on: windows-latest |
68 | | - python: 3.9-dev |
69 | | - arch: x64 |
70 | | - |
71 | | - |
72 | | - name: "🐍 ${{ matrix.python }} • ${{ matrix.runs-on }} • ${{ matrix.arch }} ${{ matrix.args }}" |
73 | | - runs-on: ${{ matrix.runs-on }} |
74 | | - continue-on-error: ${{ endsWith(matrix.python, 'dev') }} |
75 | | - |
76 | | - steps: |
77 | | - - uses: actions/checkout@v2 |
78 | | - |
79 | | - - name: Setup Python ${{ matrix.python }} |
80 | | - uses: actions/setup-python@v2 |
81 | | - with: |
82 | | - python-version: ${{ matrix.python }} |
83 | | - architecture: ${{ matrix.arch }} |
84 | | - |
85 | | - - name: Setup Boost (Windows / Linux latest) |
86 | | - run: echo "::set-env name=BOOST_ROOT::$BOOST_ROOT_1_72_0" |
87 | | - |
88 | | - - name: Update CMake |
89 | | - |
90 | | - |
91 | | - - name: Cache wheels |
92 | | - if: runner.os == 'macOS' |
93 | | - uses: actions/cache@v2 |
94 | | - with: |
95 | | - # This path is specific to macOS - we really only need it for PyPy NumPy wheels |
96 | | - # See https://github.com/actions/cache/blob/master/examples.md#python---pip |
97 | | - # for ways to do this more generally |
98 | | - path: ~/Library/Caches/pip |
99 | | - # Look to see if there is a cache hit for the corresponding requirements file |
100 | | - key: ${{ runner.os }}-pip-${{ matrix.python }}-${{ matrix.arch }}-${{ hashFiles('tests/requirements.txt') }} |
101 | | - |
102 | | - - name: Prepare env |
103 | | - run: python -m pip install -r tests/requirements.txt --prefer-binary |
104 | | - |
105 | | - - name: Setup annotations |
106 | | - run: python -m pip install pytest-github-actions-annotate-failures |
107 | | - |
108 | | - - name: Configure C++11 ${{ matrix.args }} |
109 | | - run: > |
110 | | - cmake -S . -B . |
111 | | - -DPYBIND11_WERROR=ON |
112 | | - -DDOWNLOAD_CATCH=ON |
113 | | - -DDOWNLOAD_EIGEN=ON |
114 | | - -DCMAKE_CXX_STANDARD=11 |
115 | | - ${{ matrix.args }} |
116 | | -
|
117 | | - - name: Build C++11 |
118 | | - run: cmake --build . -j 2 |
119 | | - |
120 | | - - name: Python tests C++11 |
121 | | - run: cmake --build . --target pytest -j 2 |
122 | | - |
123 | | - - name: C++11 tests |
124 | | - run: cmake --build . --target cpptest -j 2 |
125 | | - |
126 | | - - name: Interface test C++11 |
127 | | - run: cmake --build . --target test_cmake_build |
128 | | - |
129 | | - - name: Clean directory |
130 | | - run: git clean -fdx |
131 | | - |
132 | | - - name: Configure ${{ matrix.args2 }} |
133 | | - run: > |
134 | | - cmake -S . -B build2 |
135 | | - -DPYBIND11_WERROR=ON |
136 | | - -DDOWNLOAD_CATCH=ON |
137 | | - -DDOWNLOAD_EIGEN=ON |
138 | | - -DCMAKE_CXX_STANDARD=17 |
139 | | - ${{ matrix.args }} |
140 | | - ${{ matrix.args2 }} |
141 | | -
|
142 | | - - name: Build |
143 | | - run: cmake --build build2 -j 2 |
144 | | - |
145 | | - - name: Python tests |
146 | | - run: cmake --build build2 --target pytest |
147 | | - |
148 | | - - name: C++ tests |
149 | | - run: cmake --build build2 --target cpptest |
150 | | - |
151 | | - - name: Interface test |
152 | | - run: cmake --build build2 --target test_cmake_build |
153 | | - |
154 | | - clang: |
155 | | - runs-on: ubuntu-latest |
156 | | - strategy: |
157 | | - fail-fast: false |
158 | | - matrix: |
159 | | - clang: |
160 | | - - 3.6 |
161 | | - - 3.7 |
162 | | - - 3.9 |
163 | | - - 5 |
164 | | - - 7 |
165 | | - - 9 |
166 | | - - dev |
167 | | - |
168 | | - name: "🐍 3 • Clang ${{ matrix.clang }} • x64" |
169 | | - container: "silkeh/clang:${{ matrix.clang }}" |
170 | | - |
171 | | - steps: |
172 | | - - uses: actions/checkout@v2 |
173 | | - |
174 | | - - name: Add wget and python3 |
175 | | - run: apt-get update && apt-get install -y python3-dev python3-numpy python3-pytest libeigen3-dev |
176 | | - |
177 | | - - name: Configure |
178 | | - shell: bash |
179 | | - run: > |
180 | | - cmake -S . -B build |
181 | | - -DPYBIND11_WERROR=ON |
182 | | - -DDOWNLOAD_CATCH=ON |
183 | | - -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)") |
184 | | -
|
185 | | - - name: Build |
186 | | - run: cmake --build build -j 2 |
187 | | - |
188 | | - - name: Python tests |
189 | | - run: cmake --build build --target pytest |
190 | | - |
191 | | - - name: C++ tests |
192 | | - run: cmake --build build --target cpptest |
193 | | - |
194 | | - - name: Interface test |
195 | | - run: cmake --build build --target test_cmake_build |
196 | | - |
197 | | - gcc: |
198 | | - runs-on: ubuntu-latest |
199 | | - strategy: |
200 | | - fail-fast: false |
201 | | - matrix: |
202 | | - gcc: |
203 | | - - 7 |
204 | | - - latest |
205 | | - |
206 | | - name: "🐍 3 • GCC ${{ matrix.gcc }} • x64" |
207 | | - container: "gcc:${{ matrix.gcc }}" |
208 | | - |
209 | | - steps: |
210 | | - - uses: actions/checkout@v1 |
211 | | - |
212 | | - - name: Add Python 3 |
213 | | - run: apt-get update; apt-get install -y python3-dev python3-numpy python3-pytest python3-pip libeigen3-dev |
214 | | - |
215 | | - - name: Update pip |
216 | | - run: python3 -m pip install --upgrade pip |
217 | | - |
218 | | - - name: Setup CMake 3.18 |
219 | | - |
220 | | - with: |
221 | | - cmake-version: 3.18 |
222 | | - |
223 | | - - name: Configure |
224 | | - shell: bash |
225 | | - run: > |
226 | | - cmake -S . -B build |
227 | | - -DPYBIND11_WERROR=ON |
228 | | - -DDOWNLOAD_CATCH=ON |
229 | | - -DCMAKE_CXX_STANDARD=11 |
230 | | - -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)") |
231 | | -
|
232 | | - - name: Build |
233 | | - run: cmake --build build -j 2 |
234 | | - |
235 | | - - name: Python tests |
236 | | - run: cmake --build build --target pytest |
237 | | - |
238 | | - - name: C++ tests |
239 | | - run: cmake --build build --target cpptest |
240 | | - |
241 | | - - name: Interface test |
242 | | - run: cmake --build build --target test_cmake_build |
243 | | - |
244 | | - centos: |
| 11 | + # Will be replaced by part of upstream's CI. |
| 12 | + placeholder: |
| 13 | + name: placeholder |
245 | 14 | runs-on: ubuntu-latest |
246 | | - strategy: |
247 | | - fail-fast: false |
248 | | - matrix: |
249 | | - centos: |
250 | | - - 7 # GCC 4.8 |
251 | | - - 8 |
252 | | - |
253 | | - name: "🐍 3 • CentOS ${{ matrix.centos }} • x64" |
254 | | - container: "centos:${{ matrix.centos }}" |
255 | | - |
256 | 15 | steps: |
257 | | - - uses: actions/checkout@v2 |
258 | | - |
259 | | - - name: Add Python 3 |
260 | | - run: yum update -y && yum install -y python3-devel gcc-c++ make git |
261 | | - |
262 | | - - name: Update pip |
263 | | - run: python3 -m pip install --upgrade pip |
264 | | - |
265 | | - - name: Install dependencies |
266 | | - run: python3 -m pip install cmake -r tests/requirements.txt --prefer-binary |
267 | | - |
268 | | - - name: Configure |
269 | | - shell: bash |
270 | | - run: > |
271 | | - cmake -S . -B build |
272 | | - -DPYBIND11_WERROR=ON |
273 | | - -DDOWNLOAD_CATCH=ON |
274 | | - -DDOWNLOAD_EIGEN=ON |
275 | | - -DCMAKE_CXX_STANDARD=11 |
276 | | - -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)") |
277 | | -
|
278 | | - - name: Build |
279 | | - run: cmake --build build -j 2 |
280 | | - |
281 | | - - name: Python tests |
282 | | - run: cmake --build build --target pytest |
283 | | - |
284 | | - - name: C++ tests |
285 | | - run: cmake --build build --target cpptest |
286 | | - |
287 | | - - name: Interface test |
288 | | - run: cmake --build build --target test_cmake_build |
289 | | - |
290 | | - install-classic: |
291 | | - name: "🐍 3.5 • Debian • x86 • Install" |
292 | | - runs-on: ubuntu-latest |
293 | | - container: i386/debian:stretch |
294 | | - |
295 | | - steps: |
296 | | - - uses: actions/checkout@v1 |
297 | | - |
298 | | - - name: Install requirements |
299 | | - run: | |
300 | | - apt-get update |
301 | | - apt-get install -y git make cmake g++ libeigen3-dev python3-dev python3-pip |
302 | | - pip3 install "pytest==3.1.*" |
303 | | -
|
304 | | - - name: Configure for install |
305 | | - run: > |
306 | | - cmake . |
307 | | - -DPYBIND11_INSTALL=1 -DPYBIND11_TEST=0 |
308 | | - -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)") |
309 | | -
|
310 | | - - name: Make and install |
311 | | - run: make install |
312 | | - |
313 | | - - name: Copy tests to new directory |
314 | | - run: cp -a tests /pybind11-tests |
315 | | - |
316 | | - - name: Make a new test directory |
317 | | - run: mkdir /build-tests |
318 | | - |
319 | | - - name: Configure tests |
320 | | - run: > |
321 | | - cmake ../pybind11-tests |
322 | | - -DDOWNLOAD_CATCH=ON |
323 | | - -DPYBIND11_WERROR=ON |
324 | | - -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)") |
325 | | - working-directory: /build-tests |
326 | | - |
327 | | - - name: Run tests |
328 | | - run: make pytest -j 2 |
329 | | - working-directory: /build-tests |
330 | | - |
331 | | - |
332 | | - doxygen: |
333 | | - name: "Documentation build test" |
334 | | - runs-on: ubuntu-latest |
335 | | - container: alpine:3.12 |
336 | | - |
337 | | - steps: |
338 | | - - uses: actions/checkout@v2 |
339 | | - |
340 | | - - name: Install system requirements |
341 | | - run: apk add doxygen python3-dev |
342 | | - |
343 | | - - name: Ensure pip |
344 | | - run: python3 -m ensurepip |
345 | | - |
346 | | - - name: Install docs & setup requirements |
347 | | - run: python3 -m pip install -r docs/requirements.txt pytest setuptools |
348 | | - |
349 | | - - name: Build docs |
350 | | - run: python3 -m sphinx -W -b html docs docs/.build |
351 | | - |
352 | | - - name: Make SDist |
353 | | - run: python3 setup.py sdist |
354 | | - |
355 | | - - name: Compare Dists (headers only) |
356 | | - run: | |
357 | | - python3 -m pip install --user -U ./dist/* |
358 | | - installed=$(python3 -c "import pybind11; print(pybind11.get_include(True) + '/pybind11')") |
359 | | - diff -rq $installed ./include/pybind11 |
| 16 | + - name: checkout |
| 17 | + uses: actions/checkout@v2 |
0 commit comments