@@ -12,23 +12,38 @@ jobs:
1212 os : [ubuntu-latest]
1313 mpi-version : [mpich]
1414 python-version : [3.9, "3.10", "3.11", "3.12"]
15+ pydantic-version : ["2.5.2"]
1516 comms-type : [m, l]
1617 include :
1718 - os : macos-latest
1819 python-version : 3.11
1920 mpi-version : " mpich=4.0.3"
21+ pydantic-version : " 2.5.2"
2022 comms-type : m
2123 - os : macos-latest
2224 python-version : 3.11
2325 mpi-version : " mpich=4.0.3"
26+ pydantic-version : " 2.5.2"
2427 comms-type : l
2528 - os : ubuntu-latest
2629 python-version : " 3.10"
2730 mpi-version : " mpich"
31+ pydantic-version : " 2.5.2"
2832 comms-type : t
2933 - os : ubuntu-latest
3034 mpi-version : " openmpi"
31- python-version : " 3.11"
35+ pydantic-version : " 2.5.2"
36+ python-version : " 3.12"
37+ comms-type : l
38+ - os : ubuntu-latest
39+ mpi-version : mpich
40+ python-version : " 3.10"
41+ pydantic-version : " 1.10.13"
42+ comms-type : m
43+ - os : ubuntu-latest
44+ mpi-version : mpich
45+ python-version : " 3.10"
46+ pydantic-version : " 1.10.13"
3247 comms-type : l
3348
3449 env :
4358 steps :
4459 - uses : actions/checkout@v4
4560 - name : Setup conda - Python ${{ matrix.python-version }}
46- uses : conda-incubator/setup-miniconda@v2
61+ uses : conda-incubator/setup-miniconda@v3
4762 with :
4863 activate-environment : condaenv
4964 miniconda-version : " latest"
5267 channel-priority : flexible
5368 auto-update-conda : true
5469
55- - uses : actions/cache/restore@v3
70+ - uses : actions/cache/restore@v4
5671 name : Restore cached dependencies
5772 id : cache
5873 if : matrix.os == 'ubuntu-latest'
6479 /usr/share/miniconda3/bin
6580 /usr/share/miniconda3/lib
6681 /usr/share/miniconda3/include
67- key : libe-${{ github.ref_name }}-${{ matrix.python-version }}-${{ matrix.comms-type }}
82+ key : libe-${{ github.ref_name }}-${{ matrix.python-version }}-${{ matrix.comms-type }}-${{ matrix.pydantic-version }}-extra
6883
6984 - name : Force-update certifi
7085 run : |
@@ -95,20 +110,21 @@ jobs:
95110 pip install mpi4py
96111
97112 - name : Install generator dependencies
98- if : steps.cache.outputs.cache-hit != 'true'
99113 run : |
100114 python -m pip install --upgrade pip
115+ pip install mpmath matplotlib
101116 conda env update --file install/gen_deps_environment.yml
102117
103118 - name : Install ax-platform
104119 if : matrix.python-version != '3.12'
105120 run : |
106121 pip install ax-platform==0.2.8
122+ pip install gpcam
107123
108124 - name : Install surmise
109- if : matrix.os != 'macos-latest' && steps.cache.outputs.cache-hit != 'true'
125+ if : matrix.os != 'macos-latest'
110126 run : |
111- pip install --upgrade git+https://github.com/bandframework/surmise.git@develop
127+ pip install --upgrade git+https://github.com/bandframework/surmise.git
112128
113129 - name : Build ytopt and dependencies
114130 if : matrix.python-version <= '3.10' && matrix.os != 'macos-latest'
@@ -131,33 +147,14 @@ jobs:
131147 cd ..
132148
133149 - name : Install generator dependencies for Ubuntu tests
134- if : matrix.os == 'ubuntu-latest' && steps.cache.outputs.cache-hit != 'true' && matrix.python-version != '3.12'
150+ if : matrix.os == 'ubuntu-latest' && matrix.python-version != '3.12'
135151 run : |
136152 sudo apt-get install bc
137153
138- # begin heffte build and dependencies
139- sudo apt install libfftw3-dev
140- git clone https://github.com/icl-utk-edu/heffte.git
141- mkdir heffte/build
142- cd heffte/build
143- pwd
144- cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=ON -D CMAKE_INSTALL_PREFIX=./ -D Heffte_ENABLE_AVX=ON -D Heffte_ENABLE_FFTW=ON ../
145- make -j 4
146- make install
147- cp ./benchmarks/speed3d_c2c ../../libensemble/tests/regression_tests/
148- # end heffte build and dependencies
149-
150154 # pip install dragonfly-opt
151155 # pip install git+https://github.com/dragonfly/dragonfly.git
152156 pip install git+https://github.com/jlnav/dragonfly.git@fix/remove_npobject
153157
154-
155- - name : Copy heffte exe on cache-hit
156- if : matrix.os == 'ubuntu-latest' && steps.cache.outputs.cache-hit != 'false' && matrix.python-version != '3.12'
157- run : |
158- cd /home/runner/work/libensemble/libensemble
159- cp ./heffte/build/benchmarks/speed3d_c2c ./libensemble/tests/regression_tests/
160-
161158 - name : Install other testing dependencies
162159 run : |
163160 conda install octave
@@ -169,7 +166,31 @@ jobs:
169166 sed -i -e "s/pyzmq>=22.1.0,<23.0.0/pyzmq>=23.0.0,<24.0.0/" ./balsam/setup.cfg
170167 cd balsam; pip install -e .; cd ..
171168
172- - uses : actions/cache/save@v3
169+ git clone --recurse-submodules -b develop https://github.com/POptUS/IBCDFO.git
170+ pushd IBCDFO/minq/py/minq5/
171+ export PYTHONPATH="$PYTHONPATH:$(pwd)"
172+ echo "PYTHONPATH=$PYTHONPATH" >> $GITHUB_ENV
173+ popd
174+ pushd IBCDFO/ibcdfo_pypkg/
175+ pip install -e .
176+ popd
177+
178+ - name : Build heffte
179+ if : matrix.os != 'macos-latest'
180+ run : |
181+ # begin heffte build and dependencies
182+ sudo apt install libfftw3-dev
183+ git clone https://github.com/icl-utk-edu/heffte.git
184+ mkdir heffte/build
185+ cd heffte/build
186+ pwd
187+ cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=ON -D CMAKE_INSTALL_PREFIX=./ -D Heffte_ENABLE_AVX=ON -D Heffte_ENABLE_FFTW=ON ../
188+ make -j 4
189+ make install
190+ cp ./benchmarks/speed3d_c2c ../../libensemble/tests/regression_tests/
191+ # end heffte build and dependencies
192+
193+ - uses : actions/cache/save@v4
173194 name : Save dependencies to cache
174195 if : matrix.os == 'ubuntu-latest'
175196 with :
@@ -184,17 +205,24 @@ jobs:
184205
185206 - name : Install libEnsemble, flake8, lock environment
186207 run : |
208+ pip install pydantic==${{ matrix.pydantic-version }}
187209 pip install -e .
188210 flake8 libensemble
189211
190212 - name : Remove various tests on newer pythons
191213 if : matrix.python-version >= '3.11'
192214 run : |
193- rm ./libensemble/tests/regression_tests/test_heffte.py
194215 rm ./libensemble/tests/regression_tests/test_ytopt_heffte.py
216+ rm ./libensemble/tests/regression_tests/test_gpCAM.py
195217 rm ./libensemble/tests/regression_tests/test_persistent_gp.py
196218 rm ./libensemble/tests/regression_tests/test_persistent_gp_multitask_ax.py
197219
220+ - name : Remove Balsam/Globus-compute tests on Pydantic 2
221+ if : matrix.pydantic-version == '2.5.2'
222+ run : |
223+ rm ./libensemble/tests/unit_tests/test_ufunc_runners.py
224+ rm ./libensemble/tests/unit_tests/test_executor_balsam.py
225+
198226 - name : Run extensive tests, Ubuntu
199227 if : matrix.os == 'ubuntu-latest'
200228 run : |
@@ -212,7 +240,7 @@ jobs:
212240 mv libensemble/tests/.cov* .
213241
214242 - name : Upload coverage reports to Codecov
215- uses : codecov/codecov-action@v3
243+ uses : codecov/codecov-action@v4
216244 env :
217245 CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
218246
@@ -222,4 +250,4 @@ jobs:
222250 runs-on : ubuntu-latest
223251 steps :
224252 - uses : actions/checkout@v4
225- - uses : crate-ci/typos@v1.16.23
253+ - uses : crate-ci/typos@v1.18.1
0 commit comments