Skip to content

Commit 6eedfbe

Browse files
authored
Merge pull request #1654 from Libensemble/testing/pixi_extra_tests
Enabling Pixi for extra tests
2 parents 2ad1722 + a29e66b commit 6eedfbe

2 files changed

Lines changed: 35 additions & 68 deletions

File tree

.github/workflows/extra.yml

Lines changed: 33 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -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* .

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,6 @@ mumps-mpi = ">=5.8.1,<6"
117117
dfo-ls = ">=1.3.0,<2"
118118
petsc = ">=3.24.2,<4"
119119
petsc4py = ">=3.24.2,<4"
120-
ninja = ">=1.13.2,<2" # for building Tasmanian from pypi
121120
nlopt = ">=2.10.0,<3"
122121

123122
[tool.pixi.feature.docs.dependencies]
@@ -178,7 +177,7 @@ ax-platform = ">=1.2.1,<2"
178177
globus-compute-sdk = ">=4.3.0,<5"
179178

180179
[tool.pixi.feature.py313e.target.linux-64.dependencies]
181-
ax-platform = ">=0.5.0,<0.6"
180+
ax-platform = "==0.5.0"
182181

183182
[tool.pixi.feature.py314e]
184183

@@ -209,6 +208,7 @@ extra = [
209208
"enchant>=0.0.1,<0.0.2",
210209
"proxystore>=0.8.3,<0.9",
211210
"redis>=7.1.0,<8",
211+
"surmise>=0.3.0,<0.4",
212212
]
213213
dev = ["wat>=0.7.0,<0.8"]
214214
docs = ["pyenchant", "enchant>=0.0.1,<0.0.2", "sphinx-lfs-content>=1.1.10,<2"]

0 commit comments

Comments
 (0)