Skip to content

Commit 0580295

Browse files
committed
github actions: test vols
1 parent 08dad2c commit 0580295

File tree

4 files changed

+140
-3
lines changed

4 files changed

+140
-3
lines changed

.github/workflows/logvol_master.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ on:
44
push:
55
branches:
66
- master
7-
- github_action
87
paths-ignore:
98
- '**/*.md'
109
- '**/*.txt'
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
name: LogVOL master + MPICH
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
paths-ignore:
8+
- '**/*.md'
9+
- '**/*.txt'
10+
- '**/*.jpg'
11+
- '**/*.png'
12+
- 'tests/*'
13+
- 'datasets/*'
14+
pull_request:
15+
branches: master
16+
paths-ignore:
17+
- '**/*.md'
18+
- '**/*.txt'
19+
- '**/*.jpg'
20+
- '**/*.png'
21+
- 'tests/*'
22+
- 'datasets/*'
23+
24+
env:
25+
MPICH_VERSION: 4.1.1
26+
HDF5_VERSION: 1.14.1-2
27+
28+
jobs:
29+
build:
30+
runs-on: ubuntu-latest
31+
timeout-minutes: 60
32+
steps:
33+
- uses: actions/checkout@v3
34+
- name: Set up dependencies
35+
run: |
36+
sudo apt-get update
37+
sudo apt-get -y install automake autoconf libtool libtool-bin m4 cmake
38+
# The MPICH installed on github actions is too slow
39+
# sudo apt-get install mpich
40+
# mpicc -v
41+
# zlib
42+
sudo apt-get -y install zlib1g-dev
43+
- name: Add global env variables into GITHUB_ENV
44+
run: |
45+
set -x
46+
echo "MPICH_DIR=${GITHUB_WORKSPACE}/MPICH" >> $GITHUB_ENV
47+
echo "HDF5_ROOT=${GITHUB_WORKSPACE}/HDF5" >> $GITHUB_ENV
48+
echo "LOGVOL_DIR=${GITHUB_WORKSPACE}/LOGVOL" >> $GITHUB_ENV
49+
echo "HDF5_PLUGIN_PATH=${GITHUB_WORKSPACE}/LOGVOL/lib" >> $GITHUB_ENV
50+
echo "HDF5_USE_FILE_LOCKING=FALSE" >> $GITHUB_ENV
51+
- name: Build MPICH ${{ env.MPICH_VERSION }}
52+
if: ${{ success() }}
53+
run: |
54+
cd ${GITHUB_WORKSPACE}
55+
rm -rf ${MPICH_DIR} ; mkdir ${MPICH_DIR} ; cd ${MPICH_DIR}
56+
wget -q https://www.mpich.org/static/downloads/${MPICH_VERSION}/mpich-${MPICH_VERSION}.tar.gz
57+
gzip -dc mpich-${MPICH_VERSION}.tar.gz | tar -xf -
58+
cd mpich-${MPICH_VERSION}
59+
./configure --prefix=${MPICH_DIR} \
60+
--silent \
61+
--enable-romio \
62+
--with-file-system=ufs \
63+
--with-device=ch3:sock \
64+
--disable-fortran \
65+
CC=gcc
66+
make -s LIBTOOLFLAGS=--silent V=1 -j 8 install > qout 2>&1
67+
make -s -j 8 distclean >> qout 2>&1
68+
- name: Install HDF5
69+
if: ${{ success() }}
70+
run: |
71+
cd ${GITHUB_WORKSPACE}
72+
rm -rf ${HDF5_ROOT} ; mkdir ${HDF5_ROOT} ; cd ${HDF5_ROOT}
73+
VER_MAJOR=${HDF5_VERSION%.*}
74+
VER_NOPATCH=${HDF5_VERSION%-*} # remove patch version
75+
wget -cq https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${VER_MAJOR}/hdf5-${VER_NOPATCH}/src/hdf5-${HDF5_VERSION}.tar.gz
76+
tar -zxf hdf5-${HDF5_VERSION}.tar.gz
77+
cd hdf5-${HDF5_VERSION}
78+
./configure --prefix=${HDF5_ROOT} \
79+
--silent \
80+
--enable-hl \
81+
--enable-parallel \
82+
--enable-build-mode=production \
83+
--disable-doxygen-doc \
84+
--disable-doxygen-man \
85+
--disable-doxygen-html \
86+
--disable-hltools \
87+
--disable-tools \
88+
--disable-tests \
89+
CC=${MPICH_DIR}/bin/mpicc
90+
make -s LIBTOOLFLAGS=--silent V=1 -j 8 install > qout 2>&1
91+
make -s distclean >> qout 2>&1
92+
- name: Dump HDF5 config.log file
93+
if: ${{ failure() }}
94+
run: |
95+
cat ${HDF5_ROOT}/hdf5-${HDF5_VERSION}/config.log
96+
- name: Install Log VOL connector from its master branch
97+
if: ${{ success() }}
98+
run: |
99+
cd ${GITHUB_WORKSPACE}
100+
rm -rf vol-log-based
101+
git clone -q https://github.com/DataLib-ECP/vol-log-based.git
102+
cd vol-log-based
103+
autoreconf -i
104+
./configure --prefix=${LOGVOL_DIR} \
105+
--silent \
106+
--with-hdf5=${HDF5_ROOT} \
107+
--with-mpi=${MPICH_DIR}
108+
make -s LIBTOOLFLAGS=--silent V=1 -j 8 install > qout 2>&1
109+
make -s distclean >> qout 2>&1
110+
- name: Build and check E3SM_IO with HDF5 Log VOL connector only
111+
if: ${{ success() }}
112+
run: |
113+
cd ${GITHUB_WORKSPACE}
114+
rm -rf ./test_output
115+
autoreconf -i
116+
./configure --with-hdf5=${HDF5_ROOT} \
117+
--with-logvol=${LOGVOL_DIR} \
118+
--with-mpi=${MPICH_DIR} \
119+
CFLAGS=-fno-var-tracking-assignments \
120+
CXXFLAGS=-fno-var-tracking-assignments
121+
make -j 8
122+
make check
123+
- name: Dump log files if E3SM_IO with HDF5 Log VOL connector test failed
124+
if: ${{ failure() }}
125+
run: |
126+
cd ${GITHUB_WORKSPACE}
127+
cat test.sh.log utils/*.log
128+
cat config.log
129+
- name: Test E3SM_IO -- parallel runs
130+
if: ${{ success() }}
131+
run: |
132+
cd ${GITHUB_WORKSPACE}
133+
make ptest
134+
- name: Test make distcheck
135+
if: ${{ success() }}
136+
run: |
137+
cd ${GITHUB_WORKSPACE}
138+
make distcheck DISTCHECK_CONFIGURE_FLAGS="--with-hdf5=${HDF5_ROOT} --with-logvol=${LOGVOL_DIR} CC=${MPICH_DIR}/bin/mpicc CXX=${MPICH_DIR}/bin/mpicxx CFLAGS=-fno-var-tracking-assignments CXXFLAGS=-fno-var-tracking-assignments"
139+
make distclean
140+

.github/workflows/mpich_static.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ on:
44
push:
55
branches:
66
- master
7-
- github_action
87
paths-ignore:
98
- '**/*.md'
109
- '**/*.txt'

.github/workflows/ubuntu_ompi.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ on:
44
push:
55
branches:
66
- master
7-
- github_action
87
paths-ignore:
98
- '**/*.md'
109
- '**/*.txt'

0 commit comments

Comments
 (0)