Merge pull request #403 from mvertens/feature/update_dms_exchange #437
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: 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 | |
# Do not build on macOS with OpenMP. This cause an error as discussed in PR | |
# https://github.com/NorESMhub/BLOM/pull/317#issuecomment-2191552330 | |
- os: macos-latest | |
openmp: 'enabled' | |
# 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 | |
# macos-latest throws a SIGFPE exception for the test runs | |
- name: Test code | |
if: ${{ runner.os == 'Linux' && matrix.mpi == false }} | |
run: | | |
ulimit -s 65532 | |
meson test -C builddir | |
- name: Upload test log | |
if: ${{ runner.os == 'Linux' && matrix.mpi == false }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: testlog-${{ runner.os }}-OMP${{ matrix.openmp }}-gcc | |
path: builddir/meson-logs/testlog.txt | |