-
Notifications
You must be signed in to change notification settings - Fork 10
134 lines (130 loc) · 4.71 KB
/
logvol_master.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
name: LogVOL master branch only
on:
push:
branches:
- master
- github_action
paths-ignore:
- '**/*.md'
- '**/*.txt'
- '**/*.jpg'
- '**/*.png'
- 'tests/*'
- 'datasets/*'
pull_request:
branches: master
paths-ignore:
- '**/*.md'
- '**/*.txt'
- '**/*.jpg'
- '**/*.png'
- 'tests/*'
- 'datasets/*'
env:
HDF5_VERSION: 1.14.2
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- name: Set up dependencies
run: |
set -x
sudo apt-get update
sudo apt-get install automake autoconf libtool libtool-bin m4
# zlib
sudo apt-get install zlib1g-dev
# OpenMPI
sudo apt-get install openmpi-bin openmpi-common libopenmpi-dev libgtk2.0-dev
echo "---- location of OpenMPI C compiler ----"
which mpicc
ompi_info
- name: Install HDF5
if: ${{ success() }}
run: |
set -x
cd ${GITHUB_WORKSPACE}
rm -rf HDF5 ; mkdir HDF5 ; cd HDF5
VER_MAJOR=${HDF5_VERSION%.*}
VER_NOPATCH=${HDF5_VERSION%-*} # remove patch version
curl -LO https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${VER_MAJOR}/hdf5-${VER_NOPATCH}/src/hdf5-${HDF5_VERSION}.tar.gz
tar -zxf hdf5-${HDF5_VERSION}.tar.gz
cd hdf5-${HDF5_VERSION}
./configure --prefix=${GITHUB_WORKSPACE}/HDF5 \
--silent \
--enable-hl \
--enable-parallel \
--enable-build-mode=production \
--disable-doxygen-doc \
--disable-doxygen-man \
--disable-doxygen-html \
--disable-tools \
--disable-tests \
--disable-fortran \
--disable-cxx \
CC=mpicc
make -s LIBTOOLFLAGS=--silent V=1 -j 8 install > qout 2>&1
make -s distclean >> qout 2>&1
- name: Dump HDF5 config.log file
if: ${{ failure() }}
run: |
set -x
cat ${GITHUB_WORKSPACE}/HDF5/hdf5-${HDF5_VERSION}/qout
cat ${GITHUB_WORKSPACE}/HDF5/hdf5-${HDF5_VERSION}/config.log
- name: Install Log VOL connector from its master branch
if: ${{ success() }}
run: |
set -x
cd ${GITHUB_WORKSPACE}
rm -rf LOG_VOL ; mkdir LOG_VOL ; cd LOG_VOL
rm -rf vol-log-based
git clone -q https://github.com/DataLib-ECP/vol-log-based.git
cd vol-log-based
autoreconf -i
./configure --prefix=${GITHUB_WORKSPACE}/LOGVOL \
--silent \
--with-hdf5=${GITHUB_WORKSPACE}/HDF5
make -s LIBTOOLFLAGS=--silent V=1 -j 8 install > qout 2>&1
make -s distclean >> qout 2>&1
- name: Dump Log VOL config.log file
if: ${{ failure() }}
run: |
set -x
cat ${GITHUB_WORKSPACE}/LOG_VOL/vol-log-based/qout
cat ${GITHUB_WORKSPACE}/LOG_VOL/vol-log-based/config.log
- name: Build and check E3SM_IO with HDF5 Log VOL connector only
if: ${{ success() }}
run: |
set -x
cd ${GITHUB_WORKSPACE}
rm -rf ./test_output
autoreconf -i
./configure --with-hdf5=${GITHUB_WORKSPACE}/HDF5 \
--with-logvol=${GITHUB_WORKSPACE}/LOGVOL \
CC=mpicc CXX=mpicxx \
CFLAGS=-fno-var-tracking-assignments \
CXXFLAGS=-fno-var-tracking-assignments \
TESTMPIRUN="mpiexec --oversubscribe"
make -j 8
make check
- name: Dump log files if E3SM_IO with HDF5 Log VOL connector test failed
if: ${{ failure() }}
run: |
set -x
cd ${GITHUB_WORKSPACE}
cat test.sh.log utils/*.log
cat config.log
- name: Test E3SM_IO -- parallel runs
if: ${{ success() }}
run: |
set -x
cd ${GITHUB_WORKSPACE}
make ptest
- name: Test make distcheck
if: ${{ success() }}
run: |
set -x
cd ${GITHUB_WORKSPACE}
make distcheck DISTCHECK_CONFIGURE_FLAGS="--with-hdf5=${GITHUB_WORKSPACE}/HDF5 --with-logvol=${GITHUB_WORKSPACE}/LOGVOL CC=mpicc CXX=mpicxx CFLAGS=-fno-var-tracking-assignments CXXFLAGS=-fno-var-tracking-assignments"
make distclean