-
Notifications
You must be signed in to change notification settings - Fork 25
72 lines (63 loc) · 2.24 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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