Skip to content

Commit a517cab

Browse files
authored
Merge branch 'NOAA-GFDL:main' into feature/general-indices-gatscat
2 parents 8948f99 + fe2dcd3 commit a517cab

77 files changed

Lines changed: 2077 additions & 2059 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
# 'main' required ci, does a distcheck (builds, tests, check install)
2-
# image created off dockerfile in repo, compile/link flags are set there
3-
name: Build libFMS test with autotools
1+
name: Autotools build and unit testing with GCC
42

53
on: [push, pull_request]
64

@@ -14,31 +12,38 @@ jobs:
1412
runs-on: ubuntu-latest
1513
strategy:
1614
matrix:
17-
conf-flag: [ --disable-openmp, --disable-setting-flags, --with-mpi=no, --disable-r8-default]
15+
conf-flag: [ --disable-openmp, --with-mpi=no, --disable-r8-default]
1816
input-flag: [--with-yaml, --enable-test-input=/home/unit_tests_input]
1917
exclude:
2018
- conf-flag: --with-mpi=no
2119
input-flag: --enable-test-input=/home/unit_tests_input
2220
container:
23-
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0
21+
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:15.1.0
2422
env:
25-
TEST_VERBOSE: 1
26-
DISTCHECK_CONFIGURE_FLAGS: "${{ matrix.conf-flag }} ${{ matrix.input-flag }} ${{ matrix.io-flag }}"
23+
DISTCHECK_CONFIGURE_FLAGS: "${{ matrix.conf-flag }} ${{ matrix.input-flag }}"
2724
DEBUG_FLAGS: "-O0 -g -fbounds-check -ffpe-trap=invalid,zero,overflow" # debug compiler flags taken from the mkmf template
25+
# diag manager openmp + logical mask tests fail with gcc, these are reproducible outside the CI
26+
# test_mpp_clock_begin_end_id is an expected fail that is passing, only happens in the CI
27+
# test_time_interp2 tests fail from file issues, only happens in the CI
28+
SKIP_TESTS: "test_time_none.10 test_time_sum.10 test_time_avg.10 test_time_min.10 test_time_max.10 test_time_pow.10 test_time_rms.10 test_mpp_clock_begin_end_id.10 test_time_interp2.7 test_time_interp2.8"
2829
steps:
2930
- name: Checkout code
30-
uses: actions/checkout@v4.2.2
31+
uses: actions/checkout@v6.0.1
3132
- name: Prepare GNU autoconf for build
3233
run: autoreconf -if
3334
- name: Configure the build
34-
if: ${{ matrix.conf-flag != '--disable-setting-flags' }}
35-
run: ./configure ${DISTCHECK_CONFIGURE_FLAGS} FCFLAGS="$FCFLAGS $DEBUG_FLAGS"
36-
- name: Configure the build with compiler flags
37-
if: ${{ matrix.conf-flag == '--disable-setting-flags' }}
38-
run: ./configure ${DISTCHECK_CONFIGURE_FLAGS} FCFLAGS="-fdefault-real-8 -fdefault-double-8 -fcray-pointer -ffree-line-length-none -I/usr/include $FCFLAGS $DEBUG_FLAGS" || cat config.log
39-
- name: Build the library
40-
run: make distcheck
35+
run: ./configure ${DISTCHECK_CONFIGURE_FLAGS} FCFLAGS="$FCFLAGS $DEBUG_FLAGS" || cat config.log
36+
- name: Run distcheck (compiles, tests, and packages)
37+
run: make distcheck 2>&1 > distcheck.log
4138
if: ${{ matrix.conf-flag != '--with-mpi=no' }}
39+
- name: Output errors on failure
40+
run: grep -E "^FAIL:|^XPASS:" distcheck.log
41+
if: failure()
42+
- name: Upload log on failure
43+
uses: actions/upload-artifact@v7.0.0
44+
if: failure()
45+
with:
46+
path: distcheck.log
4247
- name: Build the library (without test suite for serial build)
4348
run: make
4449
if: ${{ matrix.conf-flag == '--with-mpi=no' }}

.github/workflows/github_autotools_intel_classic.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
name: Autotools build and unit testing with Intel Classic (weekly)
2+
13
on:
24
schedule:
35
- cron: '0 0 * * 0' # sundays @ midnight
46

5-
67
# cancel running jobs if theres a newer push
78
concurrency:
89
group: ${{ github.workflow }}-${{ github.ref }}
@@ -21,8 +22,6 @@ jobs:
2122
LDFLAGS: "-L/libs/lib"
2223
TEST_VERBOSE: 1
2324
I_MPI_FABRICS: "shm" # needed for mpi in image
24-
# intel bug causes some failures with shm option(required in container)
25-
SKIP_TESTS: "test_mpp_update_domains.1 test_update_domains_performance.1 test_diag_manager2.23"
2625
steps:
2726
- name: Cache dependencies
2827
id: cache

.github/workflows/github_autotools_intel_oneapi.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
name: Autotools build and unit testing with Intel Oneapi
2+
13
on: pull_request
24

35
# cancel running jobs if theres a newer push
@@ -18,8 +20,6 @@ jobs:
1820
LDFLAGS: "-L/libs/lib"
1921
TEST_VERBOSE: 1
2022
I_MPI_FABRICS: "shm" # needed for mpi in image
21-
# intel bug causes some failures with shm option(required in container)
22-
SKIP_TESTS: "test_mpp_update_domains.1 test_update_domains_performance.1 test_diag_manager2.23"
2323
steps:
2424
- name: Cache dependencies
2525
id: cache
Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build libFMS with cmake
1+
name: CMake build and unit testing with GCC
22

33
on: [push, pull_request]
44

@@ -12,36 +12,38 @@ jobs:
1212
runs-on: ubuntu-latest
1313
strategy:
1414
matrix:
15-
omp-flags: [ -DOPENMP=on, -DOPENMP=off ]
1615
libyaml-flag: [ "", -DWITH_YAML=on ]
1716
build-type: [ "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_BUILD_TYPE=Debug" ]
1817
container:
19-
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0
18+
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:15.1.0
2019
env:
21-
CMAKE_FLAGS: "${{ matrix.build-type }} ${{ matrix.omp-flags }} ${{ matrix.libyaml-flag }}"
20+
CMAKE_FLAGS: "${{ matrix.build-type }} ${{ matrix.libyaml-flag }}"
21+
EXCLUDE_TESTS: "test_mpp_nesting|test_mpp_clock_begin_end_id|test_time_*"
2222
PKG_CONFIG_PATH: "/opt/views/view/lib64/pkgconfig:/opt/views/view/lib/pkgconfig:/opt/views/view/share/pkgconfig"
2323
steps:
2424
- name: Checkout code
25-
uses: actions/checkout@v4.2.2
25+
uses: actions/checkout@v6.0.1
2626
- name: Generate makefiles with CMake
2727
run: |
2828
mkdir build
2929
cd build
30-
cmake $CMAKE_FLAGS -DNetCDF_ROOT=/opt/view ..
30+
cmake -DOVERSUBSCRIBE_FLAG="--map-by :OVERSUBSCRIBE" $CMAKE_FLAGS -DOPENMP=on -DNetCDF_ROOT=/opt/view -DLIBYAML_ROOT=/opt/view -DUNIT_TESTS=on ..
3131
- name: Build the library
3232
run: make -C build
33+
- name: Run the unit tests
34+
run: cd build && ctest -E "${EXCLUDE_TESTS}" --output-on-failure
3335

3436
build_arm:
3537
runs-on: ubuntu-24.04-arm
3638
strategy:
3739
matrix:
38-
omp-flags: [ -DOPENMP=on, -DOPENMP=off ]
3940
libyaml-flag: [ "", -DWITH_YAML=on ]
4041
build-type: [ "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_BUILD_TYPE=Debug" ]
4142
container:
42-
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0-arm
43+
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0-arm-cmake-update
4344
env:
44-
CMAKE_FLAGS: "${{ matrix.build-type }} ${{ matrix.omp-flags }} ${{ matrix.libyaml-flag }}"
45+
CMAKE_FLAGS: "${{ matrix.build-type }} ${{ matrix.libyaml-flag }}"
46+
EXCLUDE_TESTS: "test_mpp_nesting|test_sat_vapor_pres|test_mpp_clock_begin_end_id"
4547
PKG_CONFIG_PATH: "/opt/views/view/lib64/pkgconfig:/opt/views/view/lib/pkgconfig:/opt/views/view/share/pkgconfig"
4648
steps:
4749
- name: Checkout code
@@ -50,6 +52,8 @@ jobs:
5052
run: |
5153
mkdir build
5254
cd build
53-
cmake $CMAKE_FLAGS -DNetCDF_ROOT=/opt/view ..
55+
cmake $CMAKE_FLAGS -DOVERSUBSCRIBE_FLAG="" -DOPENMP=on -DUNIT_TESTS=on -DNetCDF_ROOT=/opt/view -DLIBYAML_ROOT=/opt/view ..
5456
- name: Build the library
5557
run: make -C build
58+
- name: Run the unit tests
59+
run: cd build && ctest -E "${EXCLUDE_TESTS}" --output-on-failure

.github/workflows/github_coupler_gnu.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Test coupler build
1+
name: FMScoupler null model build with GCC
22
on: [pull_request]
33

44
# cancel running jobs if theres a newer push
@@ -10,7 +10,7 @@ jobs:
1010
coupler-build:
1111
runs-on: ubuntu-latest
1212
container:
13-
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0
13+
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:15.1.0
1414
credentials:
1515
username: ${{ github.actor }}
1616
password: ${{ secrets.github_token }}

.github/workflows/github_linter.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: libFMS lint tests
1+
name: Line length and whitespace linter
22

33
on: [push, pull_request]
44

.github/workflows/github_mom_gnu.yml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Run MOM6 test suite
1+
name: MOM6 test suite with GCC
22

33
# runs on PR's or when manually triggered
44
on: [workflow_dispatch, pull_request]
@@ -11,17 +11,14 @@ concurrency:
1111
jobs:
1212
build:
1313
runs-on: ubuntu-latest
14-
container:
15-
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0
16-
credentials:
17-
username: ${{ github.actor }}
18-
password: ${{ secrets.github_token }}
1914
steps:
2015
- name: Checkout MOM6 repository
2116
uses: actions/checkout@v4.2.2
2217
with:
2318
repository: 'NOAA-GFDL/MOM6'
2419
submodules: recursive
20+
- name: Install dependency packages
21+
uses: ./.github/actions/ubuntu-setup/
2522
- name: Checkout FMS into MOM build
2623
uses: actions/checkout@v4.2.2
2724
with:

.github/workflows/version.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# appends -dev to the version upon release and opens pr
21
# CI won't run on generated PR, easiest workaround is to close + reopen
2+
name: Append version number and create PR
33
on:
44
release:
55
types: [published]

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ and this project uses `yyyy.rr[.pp]`, where `yyyy` is the year a patch is releas
66
`rr` is a sequential release number (starting from `01`), and an optional two-digit
77
sequential patch number (starting from `01`).
88

9+
## [2026.01.01] - 2026-03-03
10+
11+
### Fixed
12+
- Fix: modern diag manager cell measures and associated files (#1837)
13+
- Avoid integer overflow in mpp_define_unstruct_domain (#1841)
14+
- Fixes for cmake 32/64bit builds and enable CI testing via ctest (#1787)
15+
916
## [2026.01] - 2026-01-26
1017

1118
### Known Issues

CMAKE_INSTRUCTIONS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,12 @@ The following build options are available:
7777
-DSHARED_LIBS "Build shared/dynamic libraries" DEFAULT: OFF
7878
7979
-DCONSTANTS "Build with <X> constants parameter definitions" DEFAULT:GFDL OPTIONS:GFS|GEOS|GFDL
80-
-DINTERNAL_FILE_NML "Enable compiler definition -DINTERNAL_FILE_NML" DEFAULT: ON
8180
-DENABLE_QUAD_PRECISION "Enable compiler definition -DENABLE_QUAD_PRECISION" DEFAULT: ON
8281
-DPORTABLE_KINDS "Enable compiler definition -DPORTABLE_KINDS" DEFAULT:OFF
8382
-DGFS_PHYS "Enable compiler definition -DGFS_PHYS" DEFAULT:OFF
8483
-DLARGEFILE "Enable compiler definition -Duse_LARGEFILE" DEFAULT:OFF
8584
-DWITH_YAML "Enable compiler definition -Duse_yaml" DEFAULT:OFF
85+
-DUNIT_TESTS "Toggle on build of unit tests" DEFAULT:OFF
8686
```
8787

8888
## 3. Installation structure

0 commit comments

Comments
 (0)