Skip to content

Commit 7fe4122

Browse files
committed
add workflow to build/check both runtime and util
1 parent ab45615 commit 7fe4122

File tree

1 file changed

+116
-0
lines changed

1 file changed

+116
-0
lines changed

.github/workflows/runtime_util.yml

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
name: Ubuntu MPICH
2+
3+
on:
4+
push:
5+
branches: main
6+
pull_request:
7+
branches: main
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v3
14+
- name: Set up dependencies
15+
run: |
16+
sudo apt-get update
17+
sudo apt-get install automake autoconf libtool libtool-bin m4
18+
# mpi
19+
sudo apt-get install mpich
20+
# zlib
21+
sudo apt-get install zlib1g-dev
22+
- name: Install PnetCDF
23+
run: |
24+
echo "Install PnetCDF library into ${GITHUB_WORKSPACE}/PnetCDF"
25+
cd ${GITHUB_WORKSPACE}
26+
rm -rf PnetCDF
27+
mkdir PnetCDF
28+
cd PnetCDF
29+
VERSION=1.12.3
30+
wget -cq https://parallel-netcdf.github.io/Release/pnetcdf-${VERSION}.tar.gz
31+
tar -zxf pnetcdf-${VERSION}.tar.gz
32+
cd pnetcdf-${VERSION}
33+
./configure --prefix=${GITHUB_WORKSPACE}/PnetCDF \
34+
--silent \
35+
--disable-fortran \
36+
--disable-cxx \
37+
--disable-shared \
38+
MPICC=mpicc
39+
make -s LIBTOOLFLAGS=--silent V=1 -j 8 install > qout 2>&1
40+
make -s distclean >> qout 2>&1
41+
- name: Install HDF5
42+
if: ${{ success() }}
43+
run: |
44+
echo "Install HDF5 library into ${GITHUB_WORKSPACE}/HDF5"
45+
cd ${GITHUB_WORKSPACE}
46+
rm -rf HDF5
47+
mkdir HDF5
48+
cd HDF5
49+
VERSION=1.13.2
50+
wget -cq https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.13/hdf5-${VERSION}/src/hdf5-${VERSION}.tar.gz
51+
tar -zxf hdf5-${VERSION}.tar.gz
52+
cd hdf5-${VERSION}
53+
./configure --prefix=${GITHUB_WORKSPACE}/HDF5 \
54+
--silent \
55+
--enable-hl \
56+
--enable-parallel \
57+
--enable-build-mode=production \
58+
--disable-doxygen-doc \
59+
--disable-doxygen-man \
60+
--disable-doxygen-html \
61+
--disable-tests \
62+
CC=mpicc
63+
make -s LIBTOOLFLAGS=--silent V=1 -j 8 install > qout 2>&1
64+
make -s distclean >> qout 2>&1
65+
- name: configure darshan-runtime and darshan-util
66+
if: ${{ success() }}
67+
run: |
68+
echo "configure darshan-runtime and darshan-util"
69+
cd ${GITHUB_WORKSPACE}
70+
mkdir -p darshan_install
71+
export DARSHAN_INSTALL_PATH=${GITHUB_WORKSPACE}/darshan_install
72+
# clone autoperf module
73+
git submodule update --init
74+
./prepare.sh
75+
mkdir -p build
76+
cd build
77+
../configure --prefix=$DARSHAN_INSTALL_PATH \
78+
--with-log-path-by-env=DARSHAN_LOGPATH \
79+
--with-jobid-env=NONE \
80+
--enable-hdf5-mod \
81+
--with-hdf5=${GITHUB_WORKSPACE}/HDF5 \
82+
--enable-pnetcdf-mod \
83+
--with-pnetcdf=${GITHUB_WORKSPACE}/PnetCDF \
84+
RUNTIME_CC=mpicc
85+
- name: Dump log files if configure failed
86+
if: ${{ failure() }}
87+
run: |
88+
cd ${GITHUB_WORKSPACE}/build
89+
echo "-------- config.log --------"
90+
cat config.log
91+
echo "-------- darshan-runtime/config.log --------"
92+
cat darshan-runtime/config.log
93+
echo "-------- darshan-util/config.log --------"
94+
cat darshan-util/config.log
95+
- name: make darshan-runtime and darshan-util
96+
if: ${{ success() }}
97+
run: |
98+
echo "make darshan-runtime and darshan-util"
99+
cd ${GITHUB_WORKSPACE}/build
100+
make -j 8
101+
echo "-------- make check --------"
102+
make check
103+
echo "-------- make install --------"
104+
make install
105+
- name: make distcheck
106+
if: ${{ success() }}
107+
run: |
108+
echo "make distcheck"
109+
cd ${GITHUB_WORKSPACE}/build
110+
make distcheck DISTCHECK_CONFIGURE_FLAGS="--with-log-path-by-env=DARSHAN_LOGPATH --with-jobid-env=NONE --enable-hdf5-mod --with-hdf5=${GITHUB_WORKSPACE}/HDF5 --enable-pnetcdf-mod --with-pnetcdf=${GITHUB_WORKSPACE}/PnetCDF RUNTIME_CC=mpicc"
111+
- name: make distclean
112+
run: |
113+
echo "make distclean"
114+
cd ${GITHUB_WORKSPACE}/build
115+
make distclean
116+

0 commit comments

Comments
 (0)