Update the VOL for HDF5 2.0.0 changes. #576
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: Ubuntu with OpenMPI | |
on: | |
push: | |
branches: [ master, dev ] | |
paths-ignore: | |
- '**/*.md' | |
- '**/*.txt' | |
- '**/*.jpg' | |
- '**/*.png' | |
- 'docs/*' | |
- 'case_studies/*' | |
pull_request: | |
branches: [ master, dev ] | |
paths-ignore: | |
- '**/*.md' | |
- '**/*.txt' | |
- '**/*.jpg' | |
- '**/*.png' | |
- 'docs/*' | |
- 'case_studies/*' | |
env: | |
NETCDF_VERSION: 4.9.2 | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/[email protected] | |
- name: Set up dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install automake autoconf libtool libtool-bin m4 uuid-dev | |
# zlib | |
sudo apt-get install zlib1g-dev | |
# mpi | |
sudo apt-get install openmpi-bin openmpi-common libopenmpi-dev libgtk2.0-dev | |
echo "---- location of OpenMPI C compiler ----" | |
which mpicc | |
- name: Install HDF5 | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
echo "Install HDF5 on ${GITHUB_WORKSPACE}/HDF5" | |
rm -rf HDF5 ; mkdir HDF5 ; cd HDF5 | |
wget -cq https://github.com/HDFGroup/hdf5/releases/latest/download/hdf5.tar.gz | |
tar -zxf hdf5.tar.gz | |
cd hdf5-* | |
./configure --prefix=${GITHUB_WORKSPACE}/HDF5 \ | |
--silent \ | |
--enable-parallel \ | |
--enable-build-mode=production \ | |
--enable-unsupported \ | |
--enable-threadsafe \ | |
--disable-doxygen-doc \ | |
--disable-doxygen-man \ | |
--disable-doxygen-html \ | |
--disable-tests \ | |
--disable-fortran \ | |
--disable-cxx \ | |
--enable-shared --disable-static \ | |
CC=mpicc | |
make -s LIBTOOLFLAGS=--silent V=1 -j 4 install > qout 2>&1 | |
make -s -j 4 distclean >> qout 2>&1 | |
- name: Dump config.log if HDF5 fails to build | |
if: ${{ failure() }} | |
run: | | |
cat ${GITHUB_WORKSPACE}/HDF5/hdf5-${HDF5_VERSION}/config.log | |
- name: Install NetCDF | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
echo "Install NetCDF-C on ${GITHUB_WORKSPACE}/NetCDF" | |
rm -rf NetCDF ; mkdir NetCDF ; cd NetCDF | |
wget -cq https://github.com/Unidata/netcdf-c/archive/refs/tags/v${NETCDF_VERSION}.tar.gz | |
tar -zxf v${NETCDF_VERSION}.tar.gz | |
cd netcdf-c-${NETCDF_VERSION} | |
./configure --prefix=${GITHUB_WORKSPACE}/NetCDF \ | |
--silent \ | |
--disable-dap \ | |
--disable-nczarr \ | |
--disable-nczarr-filters \ | |
--disable-filter-testing \ | |
--disable-byterange \ | |
--disable-shared \ | |
CC=mpicc \ | |
CPPFLAGS="-I${GITHUB_WORKSPACE}/HDF5/include" \ | |
LDFLAGS="-L${GITHUB_WORKSPACE}/HDF5/lib" \ | |
LIBS="-lhdf5" | |
make -s LIBTOOLFLAGS=--silent V=1 -j 4 install > qout 2>&1 | |
make -s -j 4 distclean >> qout 2>&1 | |
- name: Dump config.log if NetCDF4 fails to build | |
if: ${{ failure() }} | |
run: | | |
cat ${GITHUB_WORKSPACE}/NetCDF/netcdf-c-${NETCDF_VERSION}/config.log | |
- name: Configure Log VOL connector | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
autoreconf -i | |
./configure --with-hdf5=${GITHUB_WORKSPACE}/HDF5 \ | |
--enable-test-netcdf4=${GITHUB_WORKSPACE}/NetCDF \ | |
--enable-test-hdf5-iotest \ | |
TESTMPIRUN="mpiexec --oversubscribe -n NP" | |
# Do NOT test QMCPACK, as it requires FFTW which fails to build | |
- name: Print config.log if error | |
if: ${{ failure() }} | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
cat config.log | |
- name: Build Log VOL connector | |
if: ${{ success() }} | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
make -j 4 | |
# Do NOT parallel build, cmake for external tests can fail | |
make tests | |
- name: Serial-run test - make check | |
if: ${{ success() }} | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
make check | |
- name: Print test log files | |
if: ${{ always() }} | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
fname=`find tests utils examples -type f -name "*.log"` | |
for f in $fname ; do \ | |
bname=`basename $f` ; \ | |
if test "x$bname" != xconfig.log ; then \ | |
echo "-------- dump $f ----------------------------" ; \ | |
cat $f ; \ | |
fi ; \ | |
done | |
- name: Parallel-run test - make ptest | |
if: ${{ success() }} | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
make ptest | |
- name: Test distribution - make distcheck | |
if: ${{ success() }} | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
make -j4 -s V=1 LIBTOOLFLAGS=--silent distcheck DISTCHECK_CONFIGURE_FLAGS="--silent --with-hdf5=${GITHUB_WORKSPACE}/HDF5" | |
- name: make distclean | |
if: ${{ always() }} | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
make -s distclean | |