Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
230 changes: 230 additions & 0 deletions .github/workflows/ubuntu_openmpi_adios.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,230 @@
name: ubuntu_openmpi_adios

on:
push:
branches: master
paths-ignore:
- '**/*.md'
- '**/*.txt'
- '**/*.1'
- 'docs/*'
- 'test/test_installed/*'
pull_request:
branches: master
paths-ignore:
- '**/*.md'
- '**/*.txt'
- '**/*.1'
- 'docs/*'
- 'test/test_installed/*'

env:
OPENMPI_VERSION: 5.0.2
AUTOCONF_VERSION: 2.71
AUTOMAKE_VERSION: 1.17
LIBTOOL_VERSION: 2.5.4
M4_VERSION: 1.4.19
ADIOS_VERSION: 1.13.1

jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v4
- name: Set up dependencies
run: |
sudo apt-get update
# install gfortran
version=12
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y gcc-${version} gfortran-${version}
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-${version} 100 \
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${version} \
--slave /usr/bin/gcov gcov /usr/bin/gcov-${version}
echo "---- gcc/gfortran version ------------------------------"
which gcc
which gfortran
gcc --version
gfortran --version
- name: Clean up git untracked files
run: |
git clean -fx
- name: Build GNU autotools
run: |
export PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/bin:${PATH}"
export LD_LIBRARY_PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/lib:${LD_LIBRARY_PATH}"
cd ${GITHUB_WORKSPACE}
wget -q https://ftp.gnu.org/gnu/m4/m4-${M4_VERSION}.tar.gz
gzip -dc m4-${M4_VERSION}.tar.gz | tar -xf -
cd m4-${M4_VERSION}
./configure --prefix=${GITHUB_WORKSPACE}/AUTOTOOLS \
--silent
make -s -j 8 install > qout 2>&1
make -s -j 8 distclean >> qout 2>&1
cd ${GITHUB_WORKSPACE}
wget -q https://ftp.gnu.org/gnu/autoconf/autoconf-${AUTOCONF_VERSION}.tar.gz
gzip -dc autoconf-${AUTOCONF_VERSION}.tar.gz | tar -xf -
cd autoconf-${AUTOCONF_VERSION}
./configure --prefix=${GITHUB_WORKSPACE}/AUTOTOOLS \
--silent
make -s -j 8 install > qout 2>&1
make -s -j 8 distclean >> qout 2>&1
cd ${GITHUB_WORKSPACE}
wget -q https://ftp.gnu.org/gnu/automake/automake-${AUTOMAKE_VERSION}.tar.gz
gzip -dc automake-${AUTOMAKE_VERSION}.tar.gz | tar -xf -
cd automake-${AUTOMAKE_VERSION}
./configure --prefix=${GITHUB_WORKSPACE}/AUTOTOOLS \
--silent
make -s -j 8 install > qout 2>&1
make -s -j 8 distclean >> qout 2>&1
cd ${GITHUB_WORKSPACE}
wget -q https://ftp.gnu.org/gnu/libtool/libtool-${LIBTOOL_VERSION}.tar.gz
gzip -dc libtool-${LIBTOOL_VERSION}.tar.gz | tar -xf -
cd libtool-${LIBTOOL_VERSION}
./configure --prefix=${GITHUB_WORKSPACE}/AUTOTOOLS \
--silent
make -s -j 8 install > qout 2>&1
make -s -j 8 distclean >> qout 2>&1
- name: Build OPENMPI
run: |
cd ${GITHUB_WORKSPACE}
echo "Install OPENMPI ${OPENMPI_VERSION} in ${GITHUB_WORKSPACE}/OPENMPI"
rm -rf OPENMPI ; mkdir OPENMPI ; cd OPENMPI
VER_MAJOR=${OPENMPI_VERSION%.*}
wget -q https://download.open-mpi.org/release/open-mpi/v${VER_MAJOR}/openmpi-${OPENMPI_VERSION}.tar.gz
gzip -dc openmpi-${OPENMPI_VERSION}.tar.gz | tar -xf -
cd openmpi-${OPENMPI_VERSION}
./configure --prefix=${GITHUB_WORKSPACE}/OPENMPI \
--silent \
--with-io-romio-flags="--with-file-system=ufs" \
CC=gcc \
FC=gfortran \
FCFLAGS=-fallow-argument-mismatch
make -s LIBTOOLFLAGS=--silent V=1 -j 4 install > qout 2>&1
make -s -j 4 distclean >> qout 2>&1
- name: Build ADIOS
run: |
cd ${GITHUB_WORKSPACE}
export PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/bin:${GITHUB_WORKSPACE}/OPENMPI/bin:${PATH}"
wget -q https://users.nccs.gov/~pnorbert/adios-${ADIOS_VERSION}.tar.gz
gzip -dc adios-${ADIOS_VERSION}.tar.gz | tar -xf -
cd adios-${ADIOS_VERSION}
#autoreconf -i
mkdir build && cd build
../configure --prefix=${GITHUB_WORKSPACE}/ADIOS \
--with-mpi=${GITHUB_WORKSPACE}/OPENMPI \
--disable-fortran
make -j 4 >> qout 2>&1
make -j 4 install >> qout 2>&1
- name: Build PnetCDF
run: |
cd ${GITHUB_WORKSPACE}
export PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/bin:${PATH}"
export LD_LIBRARY_PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/lib:${LD_LIBRARY_PATH}"
m4 --version
autoconf --version
automake --version
libtool --version
autoreconf -i
mkdir -p pnetcdf_output
./configure --prefix=${GITHUB_WORKSPACE}/PnetCDF \
--enable-option-checking=fatal \
pnc_ac_debug=yes \
--enable-burst_buffering \
--enable-subfiling \
--enable-thread-safe \
--with-pthread \
--with-mpi=${GITHUB_WORKSPACE}/OPENMPI \
--with-adios=${GITHUB_WORKSPACE}/ADIOS \
MIMIC_LUSTRE=yes \
TESTOUTDIR=${GITHUB_WORKSPACE}/pnetcdf_output
make -j 8 tests
- name: Print config.log
if: ${{ always() }}
run: |
cat ${GITHUB_WORKSPACE}/config.log
- name: make check
run: |
cd ${GITHUB_WORKSPACE}
make check
- name: Print test log files
if: ${{ always() }}
run: |
cd ${GITHUB_WORKSPACE}
fname=`find src test examples benchmarks -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: make ptests
run: |
cd ${GITHUB_WORKSPACE}
make ptests
- name: Build PnetCDF (default configuration)
run: |
cd ${GITHUB_WORKSPACE}
export PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/bin:${PATH}"
export LD_LIBRARY_PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/lib:${LD_LIBRARY_PATH}"
make distclean
mkdir -p pnetcdf_output
./configure --prefix=${GITHUB_WORKSPACE}/PnetCDF \
--with-mpi=${GITHUB_WORKSPACE}/OPENMPI \
--with-adios=${GITHUB_WORKSPACE}/ADIOS \
TESTOUTDIR=${GITHUB_WORKSPACE}/pnetcdf_output
make -j 8 tests
- name: Print config.log (default configuration)
if: ${{ always() }}
run: |
cat ${GITHUB_WORKSPACE}/config.log
- name: make check (default configuration)
run: |
cd ${GITHUB_WORKSPACE}
make check
- name: Print test log files (default configuration)
if: ${{ always() }}
run: |
cd ${GITHUB_WORKSPACE}
fname=`find src test examples benchmarks -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: make ptests (default configuration)
run: |
cd ${GITHUB_WORKSPACE}
make ptests
- name: make distcheck
run: |
cd ${GITHUB_WORKSPACE}
make -j 8 distcheck DISTCHECK_CONFIGURE_FLAGS="--silent --with-mpi=${GITHUB_WORKSPACE}/OPENMPI"
- name: make install
run: |
cd ${GITHUB_WORKSPACE}
prefix_path=${GITHUB_WORKSPACE}/pnetcdf_install
echo "---- test make install prefix=${prefix_path}"
make install prefix=${prefix_path}
test/tst_install.sh ${prefix_path}
prefix_path="/pnetcdf_install"
destdir_path=${GITHUB_WORKSPACE}/inst
echo "---- test make install prefix=${prefix_path} DESTDIR=${destdir_path}"
make install prefix=${prefix_path} DESTDIR=${destdir_path}
test/tst_install.sh ${prefix_path} ${destdir_path}
- name: Cleanup
if: ${{ always() }}
run: |
cd ${GITHUB_WORKSPACE}
make -s distclean
rm -rf ${GITHUB_WORKSPACE}/pnetcdf_output
rm -rf ${GITHUB_WORKSPACE}/OPENMPI
rm -rf ${GITHUB_WORKSPACE}/pnetcdf_install
rm -rf ${GITHUB_WORKSPACE}/inst

1 change: 1 addition & 0 deletions test/adios/parallel_run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -81,5 +81,6 @@ for i in ${check_PROGRAMS} ; do
fi
done
done
done
done