Skip to content

enable unit testing for CMake CI #1358

enable unit testing for CMake CI

enable unit testing for CMake CI #1358

name: Build libFMS with cmake
on: [push, pull_request]
# cancel running jobs if theres a newer push
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
libyaml-flag: [ "", -DWITH_YAML=on ]
build-type: [ "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_BUILD_TYPE=Debug" ]
container:
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0
env:
CMAKE_FLAGS: "${{ matrix.build-type }} ${{ matrix.libyaml-flag }}"
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Generate makefiles with CMake
run: |
mkdir build
cd build
cmake $CMAKE_FLAGS -DOPENMP=on -DNetCDF_ROOT=/opt/view -DLIBYAML_ROOT=/opt/view ..
- name: Build the library
run: make -C build
- name: Run the unit tests
run: cd build && ctest --verbose
build_arm:
runs-on: ubuntu-24.04-arm
strategy:
matrix:
libyaml-flag: [ "", -DWITH_YAML=on ]
build-type: [ "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_BUILD_TYPE=Debug" ]
container:
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0-arm
env:
CMAKE_FLAGS: "${{ matrix.build-type }} ${{ matrix.libyaml-flag }}"
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Generate makefiles with CMake
run: |
mkdir build
cd build
cmake $CMAKE_FLAGS -DOPENMP=on -DNetCDF_ROOT=/opt/view -DLIBYAML_ROOT=/opt/view ..
- name: Build the library
run: make -C build
- name: Run the unit tests
run: cd build && ctest --verbose