88 branches :
99 - main
1010
11-
12-
1311# Cancel running workflows for updated PRs
1412# https://turso.tech/blog/simple-trick-to-save-environment-and-money-when-using-github-actions
1513concurrency :
@@ -26,7 +24,6 @@ concurrency:
2624# enforces that test run just once per OS / floatX setting.
2725
2826jobs :
29-
3027 changes :
3128 name : " Check for changes"
3229 runs-on : ubuntu-latest
5653 if : ${{ needs.changes.outputs.changes == 'true' }}
5754 strategy :
5855 matrix :
59- os : [ubuntu-latest]
60- floatx : [float64]
56+ linker : [cvm, numba]
6157 python-version : ["3.14"]
6258 test-subset :
6359 - |
@@ -145,10 +141,10 @@ jobs:
145141 tests/dims/test_model.py
146142
147143 fail-fast : false
148- runs-on : ${{ matrix.os }}
144+ runs-on : ubuntu-latest
149145 env :
150146 TEST_SUBSET : ${{ matrix.test-subset }}
151- PYTENSOR_FLAGS : floatX =${{ matrix.floatx }}
147+ PYTENSOR_FLAGS : linker =${{ matrix.linker }}
152148 defaults :
153149 run :
154150 shell : bash -leo pipefail {0}
@@ -175,18 +171,17 @@ jobs:
175171 - name : Upload coverage to Codecov
176172 uses : codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
177173 with :
178- token : ${{ secrets.CODECOV_TOKEN }} # use token for more robust uploads
174+ token : ${{ secrets.CODECOV_TOKEN }}
179175 env_vars : TEST_SUBSET
180- name : ${{ matrix.os }} ${{ matrix.floatx }}
176+ name : Ubuntu py ${{ matrix.python-version }} linker= ${{ matrix.linker }}
181177 fail_ci_if_error : false
182178
183179 windows :
184180 needs : changes
185181 if : ${{ needs.changes.outputs.changes == 'true' }}
186182 strategy :
187183 matrix :
188- os : [windows-latest]
189- floatx : [float64]
184+ linker : [cvm, numba]
190185 python-version : ["3.11"]
191186 test-subset :
192187 - tests/variational/test_approximations.py tests/variational/test_callbacks.py tests/variational/test_inference.py tests/variational/test_opvi.py tests/test_initial_point.py
@@ -195,10 +190,10 @@ jobs:
195190 - tests/step_methods/test_metropolis.py tests/step_methods/test_slicer.py tests/step_methods/hmc/test_nuts.py tests/step_methods/test_compound.py tests/step_methods/hmc/test_hmc.py tests/step_methods/test_state.py
196191
197192 fail-fast : false
198- runs-on : ${{ matrix.os }}
193+ runs-on : windows-latest
199194 env :
200195 TEST_SUBSET : ${{ matrix.test-subset }}
201- PYTENSOR_FLAGS : floatX =${{ matrix.floatx }}
196+ PYTENSOR_FLAGS : linker =${{ matrix.linker }}
202197 defaults :
203198 run :
204199 shell : bash -leo pipefail {0}
@@ -225,18 +220,17 @@ jobs:
225220 - name : Upload coverage to Codecov
226221 uses : codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
227222 with :
228- token : ${{ secrets.CODECOV_TOKEN }} # use token for more robust uploads
223+ token : ${{ secrets.CODECOV_TOKEN }}
229224 env_vars : TEST_SUBSET
230- name : ${{ matrix.os }} ${{ matrix.floatx }}
225+ name : Windows py ${{ matrix.python-version }} linker= ${{ matrix.linker }}
231226 fail_ci_if_error : false
232227
233228 macos :
234229 needs : changes
235230 if : ${{ needs.changes.outputs.changes == 'true' }}
236231 strategy :
237232 matrix :
238- os : [macos-latest]
239- floatx : [float64]
233+ linker : [cvm, numba]
240234 python-version : ["3.14"]
241235 test-subset :
242236 - |
@@ -253,10 +247,10 @@ jobs:
253247 tests/backends/test_zarr.py
254248 tests/variational/test_updates.py
255249 fail-fast : false
256- runs-on : ${{ matrix.os }}
250+ runs-on : macos-latest
257251 env :
258252 TEST_SUBSET : ${{ matrix.test-subset }}
259- PYTENSOR_FLAGS : floatX =${{ matrix.floatx }}
253+ PYTENSOR_FLAGS : linker =${{ matrix.linker }}
260254 defaults :
261255 run :
262256 shell : bash -leo pipefail {0}
@@ -285,16 +279,15 @@ jobs:
285279 with :
286280 token : ${{ secrets.CODECOV_TOKEN }} # use token for more robust uploads
287281 env_vars : TEST_SUBSET
288- name : ${{ matrix.os }} ${{ matrix.floatx }}
282+ name : MacOS py ${{ matrix.python-version }} linker= ${{ matrix.linker }}
289283 fail_ci_if_error : false
290284
291285 alternative_backends :
292286 needs : changes
293287 if : ${{ needs.changes.outputs.changes == 'true' }}
294288 strategy :
295289 matrix :
296- os : [ubuntu-latest]
297- floatx : [float64]
290+ linker : [cvm, numba]
298291 # nutpie depends on PyMC, and it will require an extra release cycle to support
299292 # the next PyMC release and therefore Python 3.14.
300293 python-version : ["3.13"]
@@ -305,10 +298,10 @@ jobs:
305298 tests/sampling/test_mcmc_external.py
306299
307300 fail-fast : false
308- runs-on : ${{ matrix.os }}
301+ runs-on : ubuntu-latest
309302 env :
310303 TEST_SUBSET : ${{ matrix.test-subset }}
311- PYTENSOR_FLAGS : floatX =${{ matrix.floatx }}
304+ PYTENSOR_FLAGS : linker =${{ matrix.linker }}
312305 defaults :
313306 run :
314307 shell : bash -leo pipefail {0}
@@ -337,24 +330,24 @@ jobs:
337330 with :
338331 token : ${{ secrets.CODECOV_TOKEN }} # use token for more robust uploads
339332 env_vars : TEST_SUBSET
340- name : Alternative backend tests - ${{ matrix.os }} ${{ matrix.floatx }}
333+ name : Alternative backends py ${{ matrix.python-version }} linker= ${{ matrix.linker }}
341334 fail_ci_if_error : false
342335
343336 float32 :
344337 needs : changes
345338 if : ${{ needs.changes.outputs.changes == 'true' }}
346339 strategy :
347340 matrix :
341+ linker : [cvm, numba]
348342 os : [windows-latest]
349- floatx : [float32]
350343 python-version : ["3.14"]
351344 test-subset :
352- - tests/sampling/test_mcmc.py tests/ode/test_ode.py tests/ode/test_utils.py tests/distributions/test_transform.py
345+ - tests/sampling/test_mcmc.py tests/ode/test_ode.py tests/ode/test_utils.py tests/distributions/test_transform.py
353346 fail-fast : false
354347 runs-on : ${{ matrix.os }}
355348 env :
356349 TEST_SUBSET : ${{ matrix.test-subset }}
357- PYTENSOR_FLAGS : floatX=${{ matrix.floatx }}
350+ PYTENSOR_FLAGS : floatX=float32
358351 defaults :
359352 run :
360353 shell : bash -leo pipefail {0}
@@ -383,19 +376,19 @@ jobs:
383376 with :
384377 token : ${{ secrets.CODECOV_TOKEN }} # use token for more robust uploads
385378 env_vars : TEST_SUBSET
386- name : ${{ matrix.os }} ${{ matrix.floatx }}
379+ name : float32 ${{ matrix.os }} py ${{ matrix.python-version }} linker=${{ matrix.linker }}
387380 fail_ci_if_error : false
388381
389382 all_tests :
390383 if : ${{ always() }}
391384 runs-on : ubuntu-latest
392- needs : [ changes, ubuntu, windows, macos, alternative_backends, float32 ]
385+ needs : [changes, ubuntu, windows, macos, alternative_backends, float32]
393386 steps :
394387 - name : Check build matrix status
395388 if : ${{ needs.changes.outputs.changes == 'true' &&
396- ( needs.ubuntu.result != 'success' ||
397- needs.windows.result != 'success' ||
398- needs.macos.result != 'success' ||
399- needs.alternative_backends.result != 'success' ||
400- needs.float32.result != 'success' ) }}
389+ ( needs.ubuntu.result != 'success' ||
390+ needs.windows.result != 'success' ||
391+ needs.macos.result != 'success' ||
392+ needs.alternative_backends.result != 'success' ||
393+ needs.float32.result != 'success' ) }}
401394 run : exit 1
0 commit comments