@@ -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 : ["py310e", "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,92 +42,59 @@ 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
46+ lfs : true
5947
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
48+ - name : Checkout lockfile
49+ run : git lfs checkout
6550
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 }}
76-
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
86-
87- - name : Install surmise
88- if : matrix.os == 'ubuntu-latest'
89- run : |
90- pip install --upgrade git+https://github.com/bandframework/surmise.git
91-
92- - name : Install generator dependencies for Ubuntu tests
93- if : matrix.os == 'ubuntu-latest' && matrix.python-version <= '3.12'
94- run : |
95- pip install scikit-build packaging
51+ - uses : prefix-dev/setup-pixi@v0.9.2
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 }}
9658
9759 - name : Install other testing dependencies
9860 run : |
99- pip install -r install/testing_requirements.txt
100- pip install -r install/misc_feature_requirements.txt
101- source install/install_ibcdfo.sh
102- conda install numpy scipy
61+ pixi run -e ${{ matrix.python-version }} install/install_ibcdfo.sh
10362
10463 - name : Install libEnsemble, flake8, lock environment
10564 run : |
10665 pip install -e .
10766 flake8 libensemble
10867
109- - name : Remove test using octave, gpcam on Python 3.13
110- if : matrix.python-version >= '3.13'
68+ - name : Install gpcam
69+ if : matrix.python-version != 'py313e' && matrix.python-version != 'py314e'
70+ run : |
71+ pixi run -e ${{ matrix.python-version }} pip install gpcam==8.1.13
72+
73+ - name : Remove test using octave, gpcam, globus-compute on Python 3.13
74+ if : matrix.python-version == 'py313e' || matrix.python-version == 'py314e'
11175 run : |
76+ rm ./libensemble/tests/unit_tests/test_ufunc_runners.py # needs globus-compute
11277 rm ./libensemble/tests/regression_tests/test_persistent_fd_param_finder.py # needs octave, which doesn't yet support 3.13
11378 rm ./libensemble/tests/regression_tests/test_persistent_aposmm_external_localopt.py # needs octave, which doesn't yet support 3.13
11479 rm ./libensemble/tests/regression_tests/test_gpCAM.py # needs gpcam, which doesn't build on 3.13
115-
116- - name : Install redis/proxystore
117- run : |
118- pip install redis
119- pip install proxystore==0.7.0
80+ rm ./libensemble/tests/regression_tests/test_persistent_gp_multitask_ax.py # needs ax-platform, which doesn't yet support 3.14
12081
12182 - name : Start Redis
12283 if : matrix.os == 'ubuntu-latest'
12384 uses : supercharge/redis-github-action@v2
12485 with :
12586 redis-version : 7
12687
127- - name : Run extensive tests
88+ - name : Run extensive tests, Ubuntu
89+ if : matrix.os == 'ubuntu-latest'
12890 run : |
12991 ./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }}
13092
93+ - name : Run extensive tests, macOS
94+ if : matrix.os == 'macos-latest'
95+ run : |
96+ pixi run -e ${{ matrix.python-version }} ./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }}
97+
13198 - name : Merge coverage
13299 run : |
133100 mv libensemble/tests/.cov* .
0 commit comments