@@ -11,24 +11,24 @@ jobs:
1111 matrix :
1212 os : [ubuntu-latest]
1313 mpi-version : [mpich]
14- python-version : ['3.10', '3.11', '3.12', '3.13' ]
14+ python-version : ["py311e", "py312e", "py313e", "py314e" ]
1515 comms-type : [m, l]
1616 include :
1717 - os : macos-latest
18- python-version : ' 3.13 '
18+ python-version : " py312e "
1919 mpi-version : mpich
2020 comms-type : m
2121 - os : macos-latest
22- python-version : ' 3.13 '
22+ python-version : " py312e "
2323 mpi-version : mpich
2424 comms-type : l
2525 - os : ubuntu-latest
26- python-version : ' 3.12 '
26+ python-version : " py312e "
2727 mpi-version : mpich
2828 comms-type : t
2929 - os : ubuntu-latest
30- mpi-version : ' openmpi'
31- python-version : ' 3.12 '
30+ mpi-version : openmpi
31+ python-version : " py312e "
3232 comms-type : l
3333
3434 env :
@@ -42,93 +42,60 @@ jobs:
4242
4343 steps :
4444 - uses : actions/checkout@v6
45- - name : Setup conda - Python ${{ matrix.python-version }}
46- uses : conda-incubator/setup-miniconda@v3
4745 with :
48- activate-environment : condaenv
49- miniconda-version : ' latest'
50- python-version : ${{ matrix.python-version }}
51- channels : conda-forge
52- channel-priority : strict
53- auto-update-conda : true
54-
55- - name : Force-update certifi
56- run : |
57- python --version
58- pip install -I --upgrade certifi
59-
60- - name : Install Ubuntu compilers
61- if : matrix.os == 'ubuntu-latest'
62- run : |
63- conda install -c conda-forge gcc_linux-64
64- pip install nlopt==2.9.0
65-
66- # Roundabout solution on macos for proper linking with mpicc
67- - name : Install macOS compilers
68- if : matrix.os == 'macos-latest'
69- run : |
70- conda install clang_osx-64
71- pip install nlopt==2.8.0
72-
73- - name : Install mpi4py and MPI from conda
74- run : |
75- conda install mpi4py ${{ matrix.mpi-version }}
46+ lfs : true
7647
77- - name : Install generator dependencies
78- run : |
79- conda env update --file install/gen_deps_environment.yml
80-
81- - name : Install gpcam and octave # Neither yet support 3.13
82- if : matrix.python-version <= '3.12'
83- run : |
84- pip install gpcam==8.1.13
85- conda install octave
48+ - name : Checkout lockfile
49+ run : git lfs checkout
8650
87- - name : Install surmise and Tasmanian
88- if : matrix.os == 'ubuntu-latest'
89- run : |
90- pip install --upgrade git+https://github.com/bandframework/surmise.git
91- pip install Tasmanian --user
92-
93- - name : Install generator dependencies for Ubuntu tests
94- if : matrix.os == 'ubuntu-latest' && matrix.python-version <= '3.12'
95- run : |
96- pip install scikit-build packaging
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 }}
9758
9859 - name : Install other testing dependencies
9960 run : |
100- pip install -r install/testing_requirements.txt
101- pip install -r install/misc_feature_requirements.txt
102- source install/install_ibcdfo.sh
103- conda install numpy scipy
61+ pixi run -e ${{ matrix.python-version }} install/install_ibcdfo.sh
10462
10563 - name : Install libEnsemble, flake8, lock environment
10664 run : |
10765 pip install -e .
10866 flake8 libensemble
10967
110- - name : Remove test using octave, gpcam on Python 3.13
111- if : matrix.python-version > = '3.13 '
68+ - name : Install gpcam
69+ if : matrix.python-version ! = 'py313e' && matrix.python-version != 'py314e '
11270 run : |
113- rm ./libensemble/tests/regression_tests/test_persistent_fd_param_finder.py # needs octave, which doesn't yet support 3.13
114- rm ./libensemble/tests/regression_tests/test_persistent_aposmm_external_localopt.py # needs octave, which doesn't yet support 3.13
115- rm ./libensemble/tests/regression_tests/test_gpCAM.py # needs gpcam, which doesn't build on 3.13
71+ pixi run -e ${{ matrix.python-version }} pip install gpcam==8.1.13
11672
117- - name : Install redis/proxystore
73+ - name : Remove test using octave, gpcam, globus-compute on Python 3.13
74+ if : matrix.python-version == 'py313e' || matrix.python-version == 'py314e'
11875 run : |
119- pip install redis
120- pip install proxystore==0.7.0
76+ rm ./libensemble/tests/unit_tests/test_ufunc_runners.py # needs globus-compute
77+ rm ./libensemble/tests/regression_tests/test_gpCAM.py # needs gpcam, which doesn't build on 3.13
78+ rm ./libensemble/tests/regression_tests/test_asktell_gpCAM.py # needs gpcam, which doesn't build on 3.13
79+ rm ./libensemble/tests/regression_tests/test_persistent_gp_multitask_ax.py # needs ax-platform, which doesn't yet support 3.14
80+ rm ./libensemble/tests/regression_tests/test_optimas_ax_mf.py # needs ax-platform, which doesn't yet support 3.14
81+ rm ./libensemble/tests/regression_tests/test_optimas_ax_sf.py # needs ax-platform, which doesn't yet support 3.14
12182
12283 - name : Start Redis
12384 if : matrix.os == 'ubuntu-latest'
12485 uses : supercharge/redis-github-action@v2
12586 with :
12687 redis-version : 7
12788
128- - name : Run extensive tests
89+ - name : Run extensive tests, Ubuntu
90+ if : matrix.os == 'ubuntu-latest'
12991 run : |
13092 ./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }}
13193
94+ - name : Run extensive tests, macOS
95+ if : matrix.os == 'macos-latest'
96+ run : |
97+ pixi run -e ${{ matrix.python-version }} ./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }}
98+
13299 - name : Merge coverage
133100 run : |
134101 mv libensemble/tests/.cov* .
@@ -144,4 +111,4 @@ jobs:
144111 runs-on : ubuntu-latest
145112 steps :
146113 - uses : actions/checkout@v6
147- - uses : crate-ci/typos@v1.40 .0
114+ - uses : crate-ci/typos@v1.44 .0
0 commit comments