@@ -13,89 +13,49 @@ 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
5035 run : |
51- if [ "${{ matrix.error_for_skips || 'false' }}" = "true" ]; then
52- pip install pytest-error-for-skips
53- pytest -n auto -m "not ciSkip" -rs --error-for-skips --dist=loadscope -v
54- else
55- pytest -n auto -m "not ciSkip" -rs --dist=loadscope -v
56- fi
36+ pip install pytest-error-for-skips
37+ pytest -n auto -m "not ciSkip" -rs --error-for-skips --dist=loadscope -v
5738 - name : CTest
5839 if : ${{ always() }}
5940 working-directory : dist3
6041 run : ctest
6142
62- # Perform a Basilisk build with all newer supported python versions using the
63- # pip install based approach.
64- build-linux-pip :
65- runs-on : ubuntu-22.04
66- strategy :
67- fail-fast : false
68- matrix :
69- python : ["3.11", "3.12", "3.13"]
70- name : Linux (pip, ${{ matrix.python }})
71- steps :
72- - uses : actions/checkout@v4
73- - uses : ./.github/actions/build
74- with :
75- python-version : ${{ matrix.python }}
76- build-mode : pip
77- - name : Pytest
78- working-directory : src
79- run : pytest -n auto -m "not ciSkip" -rs --dist=loadscope -v
80-
81- # Perform a Basilisk build with Python 3.11 using the conanfile install based
82- # approach.
8343 build-windows :
8444 runs-on : windows-2025
85- timeout-minutes : 100
45+ timeout-minutes : 90
46+ needs : pre-commit
8647 strategy :
8748 fail-fast : false
8849 matrix :
89- python : ["3.11 "]
90- name : Windows (Conanfile, ${{ matrix.python }})
50+ python : ["3.13 "]
51+ name : Windows (${{ matrix.python }})
9152 env :
9253 MPLBACKEND : agg
9354 steps :
9455 - uses : actions/checkout@v4
9556 - uses : ./.github/actions/build
9657 with :
9758 python-version : ${{ matrix.python }}
98- build-mode : conan
9959 conan-args : --opNav True --mujoco True --mujocoReplay True --recorderPropertyRollback True
10060 - name : Pytest
10161 shell : pwsh
@@ -112,42 +72,38 @@ jobs:
11272 ctest
11373 if(($LastExitCode -ne 0) -and ($LastExitCode -ne 5)) { exit 1 }
11474
115- # Perform a Basilisk build with modern python versions using the conanfile
116- # install based approach. For Python 3.11 we perform a no viz build.
11775 build-macos :
11876 runs-on : macos-latest
119- timeout-minutes : 75
77+ timeout-minutes : 90
78+ needs : pre-commit
12079 strategy :
12180 fail-fast : false
12281 matrix :
123- python : ["3.11", "3.12", "3.13"]
82+ python : ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
83+ pytest_flags :
84+ ['-n auto -m "not ciSkip" -rs --error-for-skips --dist=loadscope -v']
85+ # Python 3.8 cannot run all tests.
86+ # TODO: Once Python 3.8 support is dropped, delete this include and exclude and remove 3.8 from the python
87+ # test matrix.
12488 include :
125- - python : 3.11
126- conan_args : " --vizInterface False"
127- - python : 3.12
128- conan_args : --opNav True --mujoco True --mujocoReplay True --recorderPropertyRollback True
129- error_for_skips : true
130- - python : 3.13
131- conan_args : --opNav True --mujoco True --mujocoReplay True --recorderPropertyRollback True
132- error_for_skips : true
89+ - python : " 3.8"
90+ pytest_flags : -n auto -m "not ciSkip" -rs --dist=loadscope -v -p no:pytest_forbid_skips
91+ exclude :
92+ - python : " 3.8"
93+ pytest_flags : ' -n auto -m "not ciSkip" -rs --error-for-skips --dist=loadscope -v'
13394
134- name : macOS (Conanfile, ${{ matrix.python }})
95+ name : macOS (${{ matrix.python }})
13596 steps :
13697 - uses : actions/checkout@v4
13798 - uses : ./.github/actions/build
13899 with :
139100 python-version : ${{ matrix.python }}
140- build-mode : conan
141- conan-args : ${{ matrix.conan_args }}
101+ conan-args : --opNav True --mujoco True --mujocoReplay True --recorderPropertyRollback True
142102 - name : Pytest
143103 working-directory : src
144104 run : |
145- if [ "${{ matrix.error_for_skips || 'false' }}" = "true" ]; then
146- pip install pytest-error-for-skips
147- pytest -n auto -m "not ciSkip" -rs --error-for-skips --dist=loadscope -v
148- else
149- pytest -n auto -m "not ciSkip" -rs --dist=loadscope -v
150- fi
105+ pip install pytest-error-for-skips
106+ pytest ${{ matrix.pytest_flags }}
151107 - name : CTest
152108 if : ${{ always() }}
153109 working-directory : dist3
@@ -162,8 +118,6 @@ jobs:
162118 uses : ./.github/actions/build
163119 with :
164120 python-version : 3.13
165- build-mode : conan
166121 conan-args : --opNav True --allOptPkg --mujoco True --mujocoReplay True --recorderPropertyRollback True
167- install-doc-reqs : true
168122 - name : Build docs
169123 uses : ./.github/actions/docs
0 commit comments