@@ -11,39 +11,24 @@ jobs:
1111 matrix :
1212 os : [ubuntu-latest]
1313 mpi-version : [mpich]
14- python-version : ['3.10', '3.11', '3.12', '3.13']
15- pydantic-version : ['2.10.6']
14+ python-version : ["py310e", "py311e", "py312e", "py313e", "py314e"]
1615 comms-type : [m, l]
1716 include :
1817 - os : macos-latest
19- python-version : ' 3.13 '
18+ python-version : " py312e "
2019 mpi-version : mpich
21- pydantic-version : ' 2.10.6'
2220 comms-type : m
2321 - os : macos-latest
24- python-version : ' 3.13 '
22+ python-version : " py312e "
2523 mpi-version : mpich
26- pydantic-version : ' 2.10.6'
2724 comms-type : l
2825 - os : ubuntu-latest
29- python-version : ' 3.12 '
26+ python-version : " py312e "
3027 mpi-version : mpich
31- pydantic-version : ' 2.10.6'
3228 comms-type : t
3329 - os : ubuntu-latest
34- mpi-version : ' openmpi'
35- pydantic-version : ' 2.10.6'
36- python-version : ' 3.12'
37- comms-type : l
38- - os : ubuntu-latest
39- mpi-version : mpich
40- python-version : ' 3.12'
41- pydantic-version : ' 1.10.21'
42- comms-type : m
43- - os : ubuntu-latest
44- mpi-version : mpich
45- python-version : ' 3.12'
46- pydantic-version : ' 1.10.21'
30+ mpi-version : openmpi
31+ python-version : " py312e"
4732 comms-type : l
4833
4934 env :
@@ -56,115 +41,68 @@ jobs:
5641 shell : bash -l {0}
5742
5843 steps :
59- - uses : actions/checkout@v4
60- - name : Setup conda - Python ${{ matrix.python-version }}
61- uses : conda-incubator/setup-miniconda@v3
44+ - uses : actions/checkout@v6
6245 with :
63- activate-environment : condaenv
64- miniconda-version : ' latest'
65- python-version : ${{ matrix.python-version }}
66- channels : conda-forge
67- channel-priority : strict
68- auto-update-conda : true
69-
70- - name : Force-update certifi
71- run : |
72- python --version
73- pip install -I --upgrade certifi
46+ lfs : true
7447
75- - name : Install Ubuntu compilers
76- if : matrix.os == 'ubuntu-latest'
77- run : |
78- conda install -c conda-forge gcc_linux-64
79- pip install nlopt==2.9.0
48+ - name : Checkout lockfile
49+ run : git lfs checkout
8050
81- # Roundabout solution on macos for proper linking with mpicc
82- - name : Install macOS compilers
83- if : matrix.os == 'macos-latest'
84- run : |
85- conda install clang_osx-64
86- pip install nlopt==2.8.0
87-
88- - name : Install mpi4py and MPI from conda
89- run : |
90- conda install mpi4py ${{ matrix.mpi-version }}
91-
92- - name : Install generator dependencies
93- run : |
94- conda env update --file install/gen_deps_environment.yml
95-
96- - name : Install gpcam and octave # Neither yet support 3.13
97- if : matrix.python-version <= '3.12'
98- run : |
99- pip install gpcam==8.1.13
100- conda install octave
101-
102- - name : Install surmise and Tasmanian
103- if : matrix.os == 'ubuntu-latest'
104- run : |
105- pip install --upgrade git+https://github.com/bandframework/surmise.git
106- pip install Tasmanian --user
107-
108- - name : Install generator dependencies for Ubuntu tests
109- if : matrix.os == 'ubuntu-latest' && matrix.python-version <= '3.12'
110- run : |
111- pip install scikit-build packaging
112-
113- - name : Install Balsam on Pydantic 1
114- if : matrix.pydantic-version == '1.10.21'
115- run : |
116- conda install pyzmq
117- git clone https://github.com/argonne-lcf/balsam.git
118- sed -i -e "s/pyzmq>=22.1.0,<23.0.0/pyzmq>=23.0.0,<24.0.0/" ./balsam/setup.cfg
119- cd balsam; pip install -e .; cd ..
51+ - uses : prefix-dev/setup-pixi@v0.9.4
52+ with :
53+ pixi-version : v0.55.0
54+ cache : true
55+ frozen : true
56+ environments : ${{ matrix.python-version }}
57+ activate-environment : ${{ matrix.python-version }}
12058
12159 - name : Install other testing dependencies
12260 run : |
123- pip install -r install/testing_requirements.txt
124- pip install -r install/misc_feature_requirements.txt
125- source install/install_ibcdfo.sh
126- conda install numpy scipy
61+ pixi run -e ${{ matrix.python-version }} install/install_ibcdfo.sh
12762
12863 - name : Install libEnsemble, flake8, lock environment
12964 run : |
130- pip install pydantic==${{ matrix.pydantic-version }}
13165 pip install -e .
13266 flake8 libensemble
13367
134- - name : Remove test using octave, gpcam on Python 3.13
135- if : matrix.python-version > = '3.13 '
68+ - name : Install gpcam
69+ if : matrix.python-version ! = 'py313e' && matrix.python-version != 'py314e '
13670 run : |
137- rm ./libensemble/tests/regression_tests/test_persistent_fd_param_finder.py # needs octave, which doesn't yet support 3.13
138- rm ./libensemble/tests/regression_tests/test_persistent_aposmm_external_localopt.py # needs octave, which doesn't yet support 3.13
139- rm ./libensemble/tests/regression_tests/test_gpCAM.py # needs gpcam, which doesn't build on 3.13
140-
141- - name : Install redis/proxystore on Pydantic 2
142- if : matrix.pydantic-version == '2.10.6'
143- run : |
144- pip install redis
145- pip install proxystore==0.7.0
71+ pixi run -e ${{ matrix.python-version }} pip install gpcam==8.1.13
14672
147- - name : Remove proxystore test on Pydantic 1
148- if : matrix.pydantic -version == '1.10.21 '
73+ - name : Remove xopt tests on old python
74+ if : matrix.python -version == 'py310e '
14975 run : |
150- rm ./libensemble/tests/regression_tests/test_proxystore_integration.py
76+ rm ./libensemble/tests/regression_tests/test_xopt_EI_xopt_sim.py
77+ rm ./libensemble/tests/regression_tests/test_xopt_EI.py
78+ rm ./libensemble/tests/regression_tests/test_xopt_nelder_mead.py
15179
152- - name : Remove Balsam/Globus -compute tests on Pydantic 2
153- if : matrix.pydantic -version == '2.10.6 '
80+ - name : Remove test using octave, gpcam, globus -compute on Python 3.13
81+ if : matrix.python -version == 'py313e' || matrix.python-version == 'py314e '
15482 run : |
155- rm ./libensemble/tests/unit_tests/test_ufunc_runners.py
156- rm ./libensemble/tests/unit_tests/test_executor_balsam.py
83+ rm ./libensemble/tests/unit_tests/test_ufunc_runners.py # needs globus-compute
84+ rm ./libensemble/tests/regression_tests/test_gpCAM.py # needs gpcam, which doesn't build on 3.13
85+ rm ./libensemble/tests/regression_tests/test_asktell_gpCAM.py # needs gpcam, which doesn't build on 3.13
86+ rm ./libensemble/tests/regression_tests/test_persistent_gp_multitask_ax.py # needs ax-platform, which doesn't yet support 3.14
87+ rm ./libensemble/tests/regression_tests/test_optimas_ax_mf.py # needs ax-platform, which doesn't yet support 3.14
88+ rm ./libensemble/tests/regression_tests/test_optimas_ax_sf.py # needs ax-platform, which doesn't yet support 3.14
15789
15890 - name : Start Redis
15991 if : matrix.os == 'ubuntu-latest'
160- uses : supercharge/redis-github-action@1.8.0
92+ uses : supercharge/redis-github-action@v2
16193 with :
16294 redis-version : 7
16395
164- - name : Run extensive tests
96+ - name : Run extensive tests, Ubuntu
97+ if : matrix.os == 'ubuntu-latest'
16598 run : |
16699 ./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }}
167100
101+ - name : Run extensive tests, macOS
102+ if : matrix.os == 'macos-latest'
103+ run : |
104+ pixi run -e ${{ matrix.python-version }} ./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }}
105+
168106 - name : Merge coverage
169107 run : |
170108 mv libensemble/tests/.cov* .
@@ -179,5 +117,5 @@ jobs:
179117 if : contains(github.base_ref, 'develop')
180118 runs-on : ubuntu-latest
181119 steps :
182- - uses : actions/checkout@v4
183- - uses : crate-ci/typos@v1.34 .0
120+ - uses : actions/checkout@v6
121+ - uses : crate-ci/typos@v1.44 .0
0 commit comments