@@ -13,88 +13,47 @@ jobs:
1313 runs-on : ubuntu-22.04
1414 steps :
1515 - uses : actions/checkout@v4
16- - uses : actions/setup-python@v5
17- with :
18- python-version : 3.11
19- - id : file_changes
20- uses : tj-actions/changed-files@v44
21- - uses : pre-commit/action@v3.0.1
22- with :
23- extra_args : --files ${{ steps.file_changes.outputs.all_changed_files}}
16+ - uses : ./.github/actions/pre-commit
2417
25- # Perform a Basilisk build with all supported python versions using the
26- # conanfile install based approach. For the latest python release, enable
27- # additional conan args.
28- build-linux-conan :
18+ build-linux :
2919 runs-on : ubuntu-22.04
20+ timeout-minutes : 90
21+ needs : pre-commit
3022 strategy :
3123 fail-fast : false
3224 matrix :
33- python : ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
34- include :
35- - python : 3.13
36- extra_apt : libgtk2.0
37- conan_args : --opNav True --mujoco True --mujocoReplay True --recorderPropertyRollback True
38- error_for_skips : true
39- name : Linux (Conanfile, ${{ matrix.python }})
25+ python : ["3.13"]
26+ name : Linux (${{ matrix.python }})
4027 steps :
4128 - uses : actions/checkout@v4
4229 - uses : ./.github/actions/build
4330 with :
4431 python-version : ${{ matrix.python }}
45- build-mode : conan
46- extra-apt : ${{ matrix.extra_apt || '' }}
47- conan-args : ${{ matrix.conan_args || '' }}
32+ conan-args : --opNav True --mujoco True --mujocoReplay True --recorderPropertyRollback True
4833 - name : Pytest
4934 working-directory : src
50- run : |
51- if [ "${{ matrix.error_for_skips || 'false' }}" = "true" ]; then
52- pytest -n auto -m "not ciSkip" -rs --error-for-skips --dist=loadscope -v
53- else
54- pytest -n auto -m "not ciSkip" -rs --dist=loadscope -v
55- fi
35+ run : pytest -n auto -m "not ciSkip" -rs --error-for-skips --dist=loadscope -v
5636 - name : CTest
5737 if : ${{ always() }}
5838 working-directory : dist3
5939 run : ctest
6040
61- # Perform a Basilisk build with all newer supported python versions using the
62- # pip install based approach.
63- build-linux-pip :
64- runs-on : ubuntu-22.04
65- strategy :
66- fail-fast : false
67- matrix :
68- python : ["3.11", "3.12", "3.13"]
69- name : Linux (pip, ${{ matrix.python }})
70- steps :
71- - uses : actions/checkout@v4
72- - uses : ./.github/actions/build
73- with :
74- python-version : ${{ matrix.python }}
75- build-mode : pip
76- - name : Pytest
77- working-directory : src
78- run : pytest -n auto -m "not ciSkip" -rs --dist=loadscope -v
79-
80- # Perform a Basilisk build with Python 3.11 using the conanfile install based
81- # approach.
8241 build-windows :
8342 runs-on : windows-2025
84- timeout-minutes : 100
43+ timeout-minutes : 90
44+ needs : pre-commit
8545 strategy :
8646 fail-fast : false
8747 matrix :
88- python : ["3.11 "]
89- name : Windows (Conanfile, ${{ matrix.python }})
48+ python : ["3.13 "]
49+ name : Windows (${{ matrix.python }})
9050 env :
9151 MPLBACKEND : agg
9252 steps :
9353 - uses : actions/checkout@v4
9454 - uses : ./.github/actions/build
9555 with :
9656 python-version : ${{ matrix.python }}
97- build-mode : conan
9857 conan-args : --opNav True --mujoco True --mujocoReplay True --recorderPropertyRollback True
9958 - name : Pytest
10059 shell : pwsh
@@ -110,40 +69,36 @@ jobs:
11069 ctest
11170 if(($LastExitCode -ne 0) -and ($LastExitCode -ne 5)) { exit 1 }
11271
113- # Perform a Basilisk build with modern python versions using the conanfile
114- # install based approach. For Python 3.11 we perform a no viz build.
11572 build-macos :
11673 runs-on : macos-latest
117- timeout-minutes : 75
74+ timeout-minutes : 90
75+ needs : pre-commit
11876 strategy :
11977 fail-fast : false
12078 matrix :
121- python : ["3.11", "3.12", "3.13"]
79+ python : ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
80+ pytest_flags :
81+ ['-n auto -m "not ciSkip" -rs --error-for-skips --dist=loadscope -v']
82+ # Python 3.8 cannot run all tests.
83+ # TODO: Once Python 3.8 support is dropped, delete this include and exclude and remove 3.8 from the python
84+ # test matrix.
12285 include :
123- - python : 3.11
124- conan_args : " --vizInterface False"
125- - python : 3.12
126- conan_args : --opNav True --mujoco True --mujocoReplay True --recorderPropertyRollback True
127- error_for_skips : true
128- - python : 3.13
129- conan_args : --opNav True --mujoco True --mujocoReplay True --recorderPropertyRollback True
130- error_for_skips : true
131- name : macOS (Conanfile, ${{ matrix.python }})
86+ - python : " 3.8"
87+ pytest_flags : -n auto -m "not ciSkip" -rs --dist=loadscope -v -p no:pytest_forbid_skips
88+ exclude :
89+ - python : " 3.8"
90+ pytest_flags : ' -n auto -m "not ciSkip" -rs --error-for-skips --dist=loadscope -v'
91+
92+ name : macOS (${{ matrix.python }})
13293 steps :
13394 - uses : actions/checkout@v4
13495 - uses : ./.github/actions/build
13596 with :
13697 python-version : ${{ matrix.python }}
137- build-mode : conan
138- conan-args : ${{ matrix.conan_args }}
98+ conan-args : --opNav True --mujoco True --mujocoReplay True --recorderPropertyRollback True
13999 - name : Pytest
140100 working-directory : src
141- run : |
142- if [ "${{ matrix.error_for_skips || 'false' }}" = "true" ]; then
143- pytest -n auto -m "not ciSkip" -rs --error-for-skips --dist=loadscope -v
144- else
145- pytest -n auto -m "not ciSkip" -rs --dist=loadscope -v
146- fi
101+ run : pytest ${{ matrix.pytest_flags }}
147102 - name : CTest
148103 if : ${{ always() }}
149104 working-directory : dist3
@@ -158,8 +113,6 @@ jobs:
158113 uses : ./.github/actions/build
159114 with :
160115 python-version : 3.13
161- build-mode : conan
162116 conan-args : --opNav True --allOptPkg --mujoco True --mujocoReplay True --recorderPropertyRollback True
163- install-doc-reqs : true
164117 - name : Build docs
165118 uses : ./.github/actions/docs
0 commit comments