Merge pull request #406 from blcc/release-1.4 #823
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 | |
# 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 | |