Clean import of code for GDAL in ESMF. Compiles/runs in ESMF #286
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: Intel OneAPI | |
# Tests ParallelIO using Intel Compiler and IMPI library. | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
env: | |
CC: mpicc | |
FC: mpiifort | |
# Versions should match the github tag names | |
PNETCDF_VERSION: checkpoint.1.12.3 | |
NETCDF_C_VERSION: v4.9.2 | |
NETCDF_FORTRAN_VERSION: v4.6.1 | |
HDF5_VERSION: hdf5_1_12_2 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Installs | |
run: | | |
set -x | |
sudo apt-get update | |
sudo apt-get install libcurl4-gnutls-dev | |
sudo apt-get install libz-dev | |
echo "/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/" >> $GITHUB_PATH | |
- name: cache intel compiler | |
id: cache-intel | |
uses: actions/cache@v3 | |
with: | |
path: /opt/intel/oneapi | |
key: intel-${{ runner.os }} | |
- name: Install Intel OneAPI | |
if: steps.cache-intel.outputs.cache-hit != 'true' | |
uses: ./.github/actions/intelcompilers | |
- name: Prep Intel OneAPI | |
if: steps.cache-intel.outputs.cache-hit == 'true' | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
printenv >> $GITHUB_ENV | |
- name: cache-hdf5 | |
id: cache-hdf5 | |
uses: actions/cache@v3 | |
with: | |
path: ~/work/ParallelIO/ParallelIO/hdf5 | |
key: hdf5-${{ runner.os }}-${{ env.HDF5_VERSION }}-impi | |
- name: build-hdf5 | |
if: steps.cache-hdf5.outputs.cache-hit != 'true' | |
uses: ./.github/actions/buildhdf5 | |
with: | |
install_prefix: ${GITHUB_WORKSPACE}/hdf5 | |
enable_parallel: True | |
hdf5_version: ${{ env.HDF5_VERSION }} | |
mpi_path: /opt/intel/mpi | |
- name: cache netcdf C | |
id: cache-netcdf-c | |
uses: actions/cache@v3 | |
with: | |
path: ~/work/ParallelIO/ParallelIO/netcdf-c | |
key: netcdf-c-${{ runner.os }}-${{ env.NETCDF_C_VERSION }}-impi-hdf5-${{ env.HDF5_VERSION }} | |
- name: cache netcdf Fortran | |
id: cache-netcdf-f | |
uses: actions/cache@v3 | |
with: | |
path: ~/work/ParallelIO/ParallelIO/netcdf-f | |
key: netcdf-f-${{ runner.os }}-${{ env.NETCDF_FORTRAN_VERSION }}-impi-hdf5-${{ env.HDF5_VERSION }} | |
- name: prep netcdf-c | |
run: | | |
export PATH=$GITHUB_WORKSPACE/hdf5/bin:$GITHUB_WORKSPACE/netcdf/bin:$PATH | |
export LDFLAGS="$LDFLAGS -L$GITHUB_WORKSPACE/hdf5/lib -L/usr/lib/x86_64-linux-gnu/ -lcurl" | |
export CPPFLAGS="$CPPFLAGS -I$GITHUB_WORKSPACE/hdf5/include -I$GITHUB_WORKSPACE/netcdf/include" | |
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$GITHUB_WORKSPACE/hdf5/lib:/usr/lib/x86_64-linux-gnu/:/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/" | |
printenv >> $GITHUB_ENV | |
- name: build-netcdf-c | |
if: steps.cache-netcdf-c.outputs.cache-hit != 'true' | |
uses: ./.github/actions/buildnetcdf | |
with: | |
netcdf_version: ${{ env.NETCDF_C_VERSION }} | |
install_prefix: ${GITHUB_WORKSPACE}/netcdf-c | |
- name: Build NetCDF Fortran | |
if: steps.cache-netcdf-f.outputs.cache-hit != 'true' | |
uses: ./.github/actions/buildnetcdff | |
with: | |
netcdf_fortran_version: ${{ env.NETCDF_FORTRAN_VERSION }} | |
install_prefix: ${GITHUB_WORKSPACE}/netcdf-f | |
netcdf_c_path: ${GITHUB_WORKSPACE}/netcdf-c | |
- name: cache-pnetcdf | |
id: cache-pnetcdf | |
uses: actions/cache@v3 | |
with: | |
path: ~/work/ParallelIO/ParallelIO/pnetcdf | |
key: pnetcdf-${{ runner.os }}-${{ env.PNETCDF_VERSION }}-impi-5 | |
- name: Build PNetCDF | |
if: steps.cache-pnetcdf.outputs.cache-hit != 'true' | |
uses: ./.github/actions/buildpnetcdf | |
with: | |
pnetcdf_version: ${{ env.PNETCDF_VERSION }} | |
install_prefix: ${GITHUB_WORKSPACE}/pnetcdf | |
- name: cmake build | |
uses: ./.github/actions/parallelio_cmake | |
with: | |
parallelio_version: ${{ env.GITHUB_SHA }} | |
enable_fortran: True | |
netcdf_c_library: $GITHUB_WORKSPACE/netcdf-c/lib/libnetcdf.so | |
netcdf_c_include_dir: $GITHUB_WORKSPACE/netcdf-c/include | |
netcdf_fortran_library: $GITHUB_WORKSPACE/netcdf-f/lib/libnetcdff.so | |
netcdf_fortran_include_dir: $GITHUB_WORKSPACE/netcdf-f/include | |
pnetcdf_library: $GITHUB_WORKSPACE/pnetcdf/lib/libpnetcdf.a | |
pnetcdf_include_dir: $GITHUB_WORKSPACE/pnetcdf/include | |
install_prefix: $GITHUB_WORKSPACE/parallelio | |
- name: parallelio tests | |
run: | | |
pushd $GITHUB_WORKSPACE/build | |
make tests | |
ctest -VV -E test_async_ | |
popd | |
# the following can be used by developers to login to the github server in case of errors | |
# see https://github.com/marketplace/actions/debugging-with-tmate for further details | |
# - name: Setup tmate session | |
# if: ${{ failure() }} | |
# uses: mxschmitt/action-tmate@v3 |