libEnsemble-complete-CI #282
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: libEnsemble-complete-CI | |
on: | |
workflow_dispatch: | |
jobs: | |
test-libE: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
mpi-version: [mpich] | |
python-version: [3.9, "3.10", "3.11", "3.12"] | |
pydantic-version: ["2.8.2"] | |
comms-type: [m, l] | |
include: | |
- os: macos-latest | |
python-version: 3.11 | |
mpi-version: mpich | |
pydantic-version: "2.8.2" | |
comms-type: m | |
- os: macos-latest | |
python-version: 3.11 | |
mpi-version: mpich | |
pydantic-version: "2.8.2" | |
comms-type: l | |
- os: ubuntu-latest | |
python-version: "3.10" | |
mpi-version: mpich | |
pydantic-version: "2.8.2" | |
comms-type: t | |
- os: ubuntu-latest | |
mpi-version: "openmpi" | |
pydantic-version: "2.8.2" | |
python-version: "3.12" | |
comms-type: l | |
- os: ubuntu-latest | |
mpi-version: mpich | |
python-version: "3.10" | |
pydantic-version: "1.10.17" | |
comms-type: m | |
- os: ubuntu-latest | |
mpi-version: mpich | |
python-version: "3.10" | |
pydantic-version: "1.10.17" | |
comms-type: l | |
env: | |
HYDRA_LAUNCHER: "fork" | |
TERM: xterm-256color | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- 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: flexible | |
auto-update-conda: true | |
- name: Force-update certifi | |
run: | | |
python --version | |
pip install -I --upgrade certifi | |
- name: Install Ubuntu compilers | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
conda install gcc_linux-64 | |
pip install nlopt==2.9.0 | |
# 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 | |
if: matrix.python-version != '3.12' | |
run: | | |
pip install gpcam | |
- name: Install surmise | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
pip install --upgrade git+https://github.com/bandframework/surmise.git | |
- name: Install generator dependencies for Ubuntu tests | |
if: matrix.os == 'ubuntu-latest' && matrix.python-version != '3.12' | |
run: | | |
sudo apt-get install bc | |
pip install -r install/ubuntu_no312.txt | |
pip install Tasmanian --user | |
- name: Install Balsam on Pydantic 1 | |
if: matrix.pydantic-version == '1.10.17' | |
run: | | |
conda install pyzmq | |
git clone https://github.com/argonne-lcf/balsam.git | |
sed -i -e "s/pyzmq>=22.1.0,<23.0.0/pyzmq>=23.0.0,<24.0.0/" ./balsam/setup.cfg | |
cd balsam; pip install -e .; cd .. | |
- name: Install other testing dependencies | |
run: | | |
conda install octave | |
pip install -r install/testing_requirements.txt | |
pip install -r install/misc_feature_requirements.txt | |
source install/install_ibcdfo.sh | |
- name: Install libEnsemble, flake8, lock environment | |
run: | | |
pip install pydantic==${{ matrix.pydantic-version }} | |
pip install -e . | |
flake8 libensemble | |
- name: Remove test for persistent Tasmanian, Surmise on Python 3.12 | |
if: matrix.python-version >= '3.12' | |
run: | | |
rm ./libensemble/tests/regression_tests/test_persistent_tasmanian.py | |
rm ./libensemble/tests/regression_tests/test_persistent_tasmanian_async.py | |
rm ./libensemble/tests/regression_tests/test_persistent_surmise_calib.py | |
rm ./libensemble/tests/regression_tests/test_persistent_surmise_killsims.py | |
- name: Install redis/proxystore on Pydantic 2 | |
if: matrix.pydantic-version == '2.8.2' | |
run: | | |
pip install redis | |
pip install proxystore==0.7.0 | |
- name: Remove proxystore test on Pydantic 1 | |
if: matrix.pydantic-version == '1.10.17' | |
run: | | |
rm ./libensemble/tests/regression_tests/test_proxystore_integration.py | |
- name: Remove Balsam/Globus-compute tests on Pydantic 2 | |
if: matrix.pydantic-version == '2.8.2' | |
run: | | |
rm ./libensemble/tests/unit_tests/test_ufunc_runners.py | |
rm ./libensemble/tests/unit_tests/test_executor_balsam.py | |
- name: Start Redis | |
if: matrix.os == 'ubuntu-latest' | |
uses: supercharge/[email protected] | |
with: | |
redis-version: 7 | |
- name: Run extensive tests | |
run: | | |
./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }} | |
- name: Merge coverage | |
run: | | |
mv libensemble/tests/.cov* . | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v5 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
spellcheck: | |
name: Spellcheck release branch | |
if: contains(github.base_ref, 'develop') | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: crate-ci/[email protected] |