Skip to content

iRevert to version 2023.2 #342

iRevert to version 2023.2

iRevert to version 2023.2 #342

Workflow file for this run

name: Continuous Integration testing
on: [push, pull_request]
env:
# This version of Meson should be available as an EasyBuild on Fram and Betzy
MESON_VERSION: '1.1.1'
jobs:
# build:
# name: Build BLOM on Github provided OS
# runs-on: ${{ matrix.os }}
# strategy:
# fail-fast: false
# matrix:
# os: [ubuntu-latest, macos-latest]
# mpi: [true, false]
# openmp: ['enabled', 'disabled']
# ecosys: [false] # ecosys==true fails with gcc, disable for now but leave placeholder
# exclude:
# # Do not build on macOS with MPI as that is having some dependency issues
# - os: macos-latest
# mpi: true
# # Run test (fuk95 executed with mpi=false) fails with ecosys
# - ecosys: true
# mpi: false
# steps:
# - name: Install dependencies - Ubuntu
# run: |
# sudo apt update
# sudo apt install -y libnetcdff-dev mpi-default-dev ninja-build
# if: runner.os == 'Linux'
# - name: Install dependencies - macOS
# run: brew install netcdf-fortran open-mpi ninja
# env:
# HOMEBREW_NO_INSTALL_CLEANUP: 1
# if: runner.os == 'macOS'
# - name: Setup Python for newer version of Meson
# uses: actions/setup-python@v5
# with:
# python-version: '3.10'
# - name: Install Meson
# run: python -m pip install meson==${{ env.MESON_VERSION }}
# - name: Checkout code
# uses: actions/checkout@v4
# with:
# submodules: 'recursive'
# - name: Build
# env:
# CC: gcc-12
# FC: gfortran-12
# run: |
# meson setup builddir -Dmpi=${{ matrix.mpi }} -Dopenmp=${{ matrix.openmp }} -Decosys=${{ matrix.ecosys }} --buildtype=debugoptimized
# meson compile -C builddir
# - name: Test code
# if: ${{ matrix.mpi == false }}
# run: |
# ulimit -s 65532
# meson test -C builddir
# - name: Upload test log
# if: ${{ matrix.mpi == false }}
# uses: actions/upload-artifact@v3
# with:
# name: testlog-${{ runner.os }}-gcc
# path: builddir/meson-logs/testlog.txt
intel:
name: Build BLOM using Intel compilers
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
# mpi: [true, false]
# openmp: ['enabled', 'disabled']
# ecosys: [true, false]
# exclude:
# # Run test (fuk95 executed with mpi=false) fails with ecosys
# - ecosys: true
# mpi: false
mpi: [false]
openmp: ['disabled']
ecosys: [false]
# Tell Meson to use Intel compilers
env:
CC: icx
FC: ifx
NFDIR: '/opt/netcdf'
steps:
- name: Install dependencies
run: |
sudo apt update
sudo apt install -y ninja-build libnetcdf-dev
# - name: Cache Intel setup
# id: cache-intel
# uses: actions/cache@v3
# with:
# path: /opt/intel/
# key: intel-${{ runner.os }}-compiler
# - name: Setup Intel compiler
# if: steps.cache-intel.outputs.cache-hit != 'true'
# run: |
# wget -q https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
# sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
# sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
# sudo apt update
# sudo apt install -y\
# intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic\
# intel-oneapi-compiler-fortran intel-oneapi-mpi-devel
# Follow setup from https://github.com/marketplace/actions/setup-fortran
- name: Setup Intel compiler
uses: fortran-lang/setup-fortran@v1
with:
compiler: intel
version: '2023.2'
# - name: Cache netCDF install
# id: cache-netcdf
# uses: actions/cache@v3
# with:
# path: ${{ env.NFDIR }}
# key: netcdf-4.6.0-${{ runner.os }}-intel
- name: Checkout netCDF for compiling with Intel
if: steps.cache-netcdf.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: 'Unidata/netcdf-fortran'
ref: 'v4.6.0'
- name: Compile and install custom netCDF
if: steps.cache-netcdf.outputs.cache-hit != 'true'
run: |
# source /opt/intel/oneapi/setvars.sh
CPPFLAGS=-I/opt/intel/oneapi/include LDFLAGS=-L/opt/intel/oneapi/lib FC=${{ env.FC }} CC=${{ env.CC }} ./configure --prefix="$NFDIR" --disable-fortran-type-check --host=x86
make
sudo make install
- name: Setup netCDF environment
run: |
echo "${NFDIR}/bin" >> $GITHUB_PATH
echo "PKG_CONFIG_PATH=${NFDIR}/lib/pkgconfig" >> $GITHUB_ENV
- name: Setup Python for newer version of Meson
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install Meson
run: python -m pip install meson==${{ env.MESON_VERSION }}
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Build with Intel compilers
run: |
# source /opt/intel/oneapi/setvars.sh
meson setup builddir -Dmpi=${{ matrix.mpi }} -Dopenmp=${{ matrix.openmp }} -Decosys=${{ matrix.ecosys }} --buildtype=debugoptimized
meson compile -C builddir
- name: Test code
if: ${{ matrix.mpi == false }}
run: |
source /opt/intel/oneapi/setvars.sh
meson test -C builddir
- name: Upload test log
uses: actions/upload-artifact@v3
if: ${{ matrix.mpi == false }}
with:
name: testlog-${{ runner.os }}-intel
path: builddir/meson-logs/testlog.txt