Skip to content

CI workflow updates and migrate container #185

CI workflow updates and migrate container

CI workflow updates and migrate container #185

on: [push, pull_request]
jobs:
build-dependencies:
runs-on: ubuntu-latest
container:
image: intel/oneapi-hpckit:2023.1.0-devel-ubuntu22.04
env:
CC: mpiicc
FC: mpiifort
CFLAGS: "-I/libs/include"
FCFLAGS: "-I/libs/include"
LDFLAGS: "-L/libs/lib"
steps:
- name: Cache dependencies
id: cache
uses: actions/cache@v3
with:
path: /libs
key: ${{ runner.os }}-intel-libs${{ matrix.io-flag }}
- name: Install packages for building
run: apt-get update && apt-get install -y autoconf libtool automake
- if: steps.cache.outputs.cache-hit != 'true'
name: Build netcdf
run: |
mkdir /libs
wget https://hdf-wordpress-1.s3.amazonaws.com/wp-content/uploads/manual/HDF5/HDF5_1_12_2/source/hdf5-1.12.2.tar.gz
tar xf hdf5-1.12.2.tar.gz && cd hdf5-1.12.2
./configure --prefix=/libs
make -j install && cd ..
wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.8.1.tar.gz
tar xf v4.8.1.tar.gz && cd netcdf-c-4.8.1
./configure --prefix=/libs --enable-remote-fortran-bootstrap
make -j install
# sets this here to pass embeded configure checks
export LD_LIBRARY_PATH="/libs/lib:$LD_LIBRARY_PATH"
make -j -k build-netcdf-fortran
make -j install-netcdf-fortran
wget https://github.com/yaml/libyaml/releases/download/0.2.5/yaml-0.2.5.tar.gz
tar xf yaml-0.2.5.tar.gz && cd yaml-0.2.5
./configure --prefix=/libs
make -j install && cd
make-check-fms:
needs: build-dependencies
runs-on: ubuntu-latest
strategy:
matrix:
FC: ["ifx", "ifort"]
CC: ["icx", "icc"]
target-fcflags: [ "-O3 -debug minimal -fp-model source", "-g -O0 -check -check noarg_temp_created -check nopointer -warn noerrors -fpe0 -ftrapuv" ] # prod, debug
target-cflags: [ "-O2 -debug minimal", "-O0 -g" ] # prod, debug (-ftrapuv was removed since its incompatible with icx)
io-flag: ["--disable-deprecated-io", "--enable-deprecated-io"]
exclude:
- FC: "ifx"
CC: "icc"
- target-fcflags: "-O3 -debug minimal -fp-model source"
target-cflags: "-O0 -g"
- target-fcflags: "-g -O0 -check -check noarg_temp_created -check nopointer -warn noerrors -fpe0 -ftrapuv"
target-cflags: "-O2 -debug minimal"
#- FC: "ifx" # bug with ifx will cause ICE if using -check flag (issue #1348)
# target-fcflags: "-g -O0 -check -check noarg_temp_created -check nopointer -warn noerrors -fpe0 -ftrapuv"
container:
image: intel/oneapi-hpckit:2023.1.0-devel-ubuntu22.04
env:
CC: mpicc -cc=${{ matrix.CC }}
FC: mpifc -fc=${{ matrix.FC }}
CFLAGS: "-I/libs/include ${{ matrix.target-cflags }}"
FCFLAGS: "-I/libs/include ${{ matrix.target-fcflags }}"
LDFLAGS: "-L/libs/lib"
TEST_VERBOSE: 1
I_MPI_FABRICS: "shm" # needed for mpi in image
SKIP_TESTS: "test_fms2_io.2" # TODO compressed writes test fails with ifx
steps:
- name: Get dependencies from cache
id: cache
uses: actions/cache@v3
with:
path: /libs
key: ${{ runner.os }}-intel-libs
- name: Install packages for building
run: apt-get update && apt-get install -y autoconf libtool automake zip
- name: checkout
uses: actions/checkout@v2
- name: Configure
run: autoreconf -if ./configure.ac && ./configure --with-yaml ${{ matrix.io-flag }} || cat config.log
- name: Compile
run: make -j || make
- name: Run test suite
run: make distcheck LD_LIBRARY_PATH="/libs/lib:$LD_LIBRARY_PATH" TEST_VERBOSE=1