Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 32 additions & 67 deletions .github/workflows/extra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,24 @@ jobs:
matrix:
os: [ubuntu-latest]
mpi-version: [mpich]
python-version: ['3.10', '3.11', '3.12', '3.13']
python-version: ["py310e", "py311e", "py312e", "py313e", "py314e"]
comms-type: [m, l]
include:
- os: macos-latest
python-version: '3.13'
python-version: "py312e"
mpi-version: mpich
comms-type: m
- os: macos-latest
python-version: '3.13'
python-version: "py312e"
mpi-version: mpich
comms-type: l
- os: ubuntu-latest
python-version: '3.12'
python-version: "py312e"
mpi-version: mpich
comms-type: t
- os: ubuntu-latest
mpi-version: 'openmpi'
python-version: '3.12'
mpi-version: openmpi
python-version: "py312e"
comms-type: l

env:
Expand All @@ -42,93 +42,58 @@ jobs:

steps:
- uses: actions/checkout@v6
- name: Setup conda - Python ${{ matrix.python-version }}
uses: conda-incubator/setup-miniconda@v3
with:
activate-environment: condaenv
miniconda-version: 'latest'
python-version: ${{ matrix.python-version }}
channels: conda-forge
channel-priority: strict
auto-update-conda: true

- name: Force-update certifi
run: |
python --version
pip install -I --upgrade certifi
lfs: true

- name: Install Ubuntu compilers
if: matrix.os == 'ubuntu-latest'
run: |
conda install -c conda-forge gcc_linux-64
pip install nlopt==2.9.0
- name: Checkout lockfile
run: git lfs checkout

# Roundabout solution on macos for proper linking with mpicc
- name: Install macOS compilers
if: matrix.os == 'macos-latest'
run: |
conda install clang_osx-64
pip install nlopt==2.8.0

- name: Install mpi4py and MPI from conda
run: |
conda install mpi4py ${{ matrix.mpi-version }}

- name: Install generator dependencies
run: |
conda env update --file install/gen_deps_environment.yml

- name: Install gpcam and octave # Neither yet support 3.13
if: matrix.python-version <= '3.12'
run: |
pip install gpcam==8.1.13
conda install octave

- name: Install surmise and Tasmanian
if: matrix.os == 'ubuntu-latest'
run: |
pip install --upgrade git+https://github.com/bandframework/surmise.git
pip install Tasmanian --user

- name: Install generator dependencies for Ubuntu tests
if: matrix.os == 'ubuntu-latest' && matrix.python-version <= '3.12'
run: |
pip install scikit-build packaging
- uses: prefix-dev/setup-pixi@v0.9.2
with:
pixi-version: v0.55.0
cache: true
frozen: true
environments: ${{ matrix.python-version }}
activate-environment: ${{ matrix.python-version }}

- name: Install other testing dependencies
run: |
pip install -r install/testing_requirements.txt
pip install -r install/misc_feature_requirements.txt
source install/install_ibcdfo.sh
conda install numpy scipy
pixi run -e ${{ matrix.python-version }} install/install_ibcdfo.sh

- name: Install libEnsemble, flake8, lock environment
run: |
pip install -e .
flake8 libensemble

- name: Remove test using octave, gpcam on Python 3.13
if: matrix.python-version >= '3.13'
- name: Install gpcam
if: matrix.python-version != 'py313e' && matrix.python-version != 'py314e'
run: |
pixi run -e ${{ matrix.python-version }} pip install gpcam==8.1.13

- name: Remove test using octave, gpcam, globus-compute on Python 3.13
if: matrix.python-version == 'py313e' || matrix.python-version == 'py314e'
run: |
rm ./libensemble/tests/unit_tests/test_ufunc_runners.py # needs globus-compute
rm ./libensemble/tests/regression_tests/test_persistent_fd_param_finder.py # needs octave, which doesn't yet support 3.13
rm ./libensemble/tests/regression_tests/test_persistent_aposmm_external_localopt.py # needs octave, which doesn't yet support 3.13
rm ./libensemble/tests/regression_tests/test_gpCAM.py # needs gpcam, which doesn't build on 3.13

- name: Install redis/proxystore
run: |
pip install redis
pip install proxystore==0.7.0

- name: Start Redis
if: matrix.os == 'ubuntu-latest'
uses: supercharge/redis-github-action@v2
with:
redis-version: 7

- name: Run extensive tests
- name: Run extensive tests, Ubuntu
if: matrix.os == 'ubuntu-latest'
run: |
./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }}

- name: Run extensive tests, macOS
if: matrix.os == 'macos-latest'
run: |
pixi run -e ${{ matrix.python-version }} ./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }}

- name: Merge coverage
run: |
mv libensemble/tests/.cov* .
Expand Down
4 changes: 2 additions & 2 deletions pixi.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 8 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,9 @@ packaging = "*"
octave = ">=9.4.0,<11"
pyzmq = ">=26.4.0,<28"

[tool.pixi.feature.extra.target.linux-64.pypi-dependencies]
tasmanian = ">=8.2, <9"

# Python versions
[tool.pixi.feature.py310.dependencies]
python = "3.10.*"
Expand All @@ -157,25 +160,25 @@ python = "3.14.*"

# ax-platform only works up to 3.13 on Linux
[tool.pixi.feature.py310e.target.linux-64.dependencies]
ax-platform = ">=1.2.1,<2"
ax-platform = "==0.5.0"

[tool.pixi.feature.py310e.dependencies]
globus-compute-sdk = ">=4.3.0,<5"

[tool.pixi.feature.py311e.target.linux-64.dependencies]
ax-platform = ">=1.2.1,<2"
ax-platform = "==0.5.0"

[tool.pixi.feature.py311e.dependencies]
globus-compute-sdk = ">=4.3.0,<5"

[tool.pixi.feature.py312e.target.linux-64.dependencies]
ax-platform = ">=1.2.1,<2"
ax-platform = "==0.5.0"

[tool.pixi.feature.py312e.dependencies]
globus-compute-sdk = ">=4.3.0,<5"

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

[tool.pixi.feature.py314e]

Expand Down Expand Up @@ -206,6 +209,7 @@ extra = [
"enchant>=0.0.1,<0.0.2",
"proxystore>=0.8.3,<0.9",
"redis>=7.1.0,<8",
"surmise>=0.3.0,<0.4",
]
dev = ["wat>=0.7.0,<0.8"]

Expand Down
Loading