From 950043822d0404609ad6e6c29f38698d12e51297 Mon Sep 17 00:00:00 2001 From: dougiesquire Date: Tue, 24 Feb 2026 21:10:37 +1100 Subject: [PATCH 1/3] Build-CI: Update component versions; Add gcc builds --- .github/build-ci/data/standard.json | 19 ++++---- .../pr/gcc_access-esm1.6.spack.yaml.j2 | 48 +++++++++++++++++++ .../manifests/pr/gcc_access-om2.spack.yaml.j2 | 44 +++++++++++++++++ .../pr/intel_access-esm1.6.spack.yaml.j2 | 9 +++- .../pr/intel_access-om2.spack.yaml.j2 | 10 ++-- .../pr/oneapi_access-esm1.6.spack.yaml.j2 | 14 ++++-- .../pr/oneapi_access-om2.spack.yaml.j2 | 5 +- .github/workflows/ci.yml | 3 ++ 8 files changed, 129 insertions(+), 23 deletions(-) create mode 100644 .github/build-ci/manifests/pr/gcc_access-esm1.6.spack.yaml.j2 create mode 100644 .github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 diff --git a/.github/build-ci/data/standard.json b/.github/build-ci/data/standard.json index 171d67f1d..c20432723 100644 --- a/.github/build-ci/data/standard.json +++ b/.github/build-ci/data/standard.json @@ -2,18 +2,17 @@ "intel_compiler": "intel@2021.10.0", "gcc_compiler": "gcc@13.2.0", "oneapi_compiler": "oneapi@2025.2.0", - "cice5_version_om2": "git.2025.03.001=access-om2", - "cice5_version_esm1p6": "git.access-esm1.6-2025.07.001=access-esm1.6", - "um_version_esm1p6": "git.access-esm1.6-2025.06.000=access-esm1.6", - "gcom4_version": "git.2024.05.28=access-esm1.5", + "cice5_version": "2026.01.000", + "um_version_esm1p6": "git.2026.02.000=access-esm1.6", + "cable_version_esm1p6": "2025.11.000", + "gcom4_version": "git.2025.08.000=access-esm1.5", "libaccessom2_version": "git.2025.05.001=access-om2", - "oasis3_mct_version_om2": "git.2025.03.001=access-om2", - "oasis3_mct_version_esm1p6": "git.access-esm1.5-2025.03.001=access-esm1.5", + "oasis3_mct_version": "5.2", "netcdf_c_version": "4.9.2", "netcdf_fortran_version": "4.6.1", - "parallelio_version": "2.6.2", - "openmpi_version": "5.0.5", - "access_fms_version": "git.mom5-2025.05.000=mom5", - "access_generic_tracers_version": "2025.07.002", + "parallelio_version": "2.6.8", + "openmpi_version": "5.0.8", + "access_fms_version": "git.mom5-2025.08.000=mom5", + "access_generic_tracers_version": "2026.01.000", "access_mocsy_version": "2025.07.002" } diff --git a/.github/build-ci/manifests/pr/gcc_access-esm1.6.spack.yaml.j2 b/.github/build-ci/manifests/pr/gcc_access-esm1.6.spack.yaml.j2 new file mode 100644 index 000000000..85a9de4cd --- /dev/null +++ b/.github/build-ci/manifests/pr/gcc_access-esm1.6.spack.yaml.j2 @@ -0,0 +1,48 @@ +spack: + specs: + - 'access-esm1p6@latest cice=5' + packages: + mom5: + require: + - '@git.{{ ref }}=access-esm1.6' + cice5: + require: + - '@{{ cice5_version }}' + - 'nxglob=360 nyglob=300 blckx=30 blcky=300 mxblcks=1' # grid size and block size + um7: + require: + - '@{{ um_version_esm1p6 }}' + cable: + require: + - '@{{ cable_version_esm1p6 }}' + - library=access-esm1.6 + gcom4: + require: + - '@{{ gcom4_version }}' + oasis3-mct: + require: + - '@{{ oasis3_mct_version }}' + access-fms: + require: + - '@{{ access_fms_version }}' + access-generic-tracers: + require: + - '@{{ access_generic_tracers_version }}' + access-mocsy: + require: + - '@{{ access_mocsy_version }}' + netcdf-c: + require: + - '@{{ netcdf_c_version}}' + netcdf-fortran: + require: + - '@{{ netcdf_fortran_version }}' + openmpi: + require: + - '@{{ openmpi_version }}' + all: + require: + - '%{{ gcc_compiler }} target=x86_64' + concretizer: + unify: false + view: false diff --git a/.github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 b/.github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 new file mode 100644 index 000000000..0483ff713 --- /dev/null +++ b/.github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 @@ -0,0 +1,44 @@ +spack: + specs: + - 'access-om2@latest' + packages: + mom5: + require: + - '@git.{{ ref }}=access-om2' + cice5: + require: + - '@{{ cice5_version }}' + - 'io_type=PIO build_system=cmake' + libaccessom2: + require: + - '@{{ libaccessom2_version }}' + oasis3-mct: + require: + - '@{{ oasis3_mct_version }}' + access-fms: + require: + - '@{{ access_fms_version }}' + access-generic-tracers: + require: + - '@{{ access_generic_tracers_version }}' + access-mocsy: + require: + - '@{{ access_mocsy_version }}' + netcdf-c: + require: + - '@{{ netcdf_c_version}}' + netcdf-fortran: + require: + - '@{{ netcdf_fortran_version }}' + parallelio: + require: + - '@{{ parallelio_version }}' + openmpi: + require: + - '@{{ openmpi_version }}' + all: + require: + - '%{{ gcc_compiler }} target=x86_64' + concretizer: + unify: false + view: false diff --git a/.github/build-ci/manifests/pr/intel_access-esm1.6.spack.yaml.j2 b/.github/build-ci/manifests/pr/intel_access-esm1.6.spack.yaml.j2 index c5ce4fe8e..90a450b31 100644 --- a/.github/build-ci/manifests/pr/intel_access-esm1.6.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/intel_access-esm1.6.spack.yaml.j2 @@ -7,16 +7,21 @@ spack: - '@git.{{ ref }}=access-esm1.6' cice5: require: - - '@{{ cice5_version_esm1p6 }}' + - '@{{ cice5_version }}' + - 'nxglob=360 nyglob=300 blckx=30 blcky=300 mxblcks=1' # grid size and block size um7: require: - '@{{ um_version_esm1p6 }}' + cable: + require: + - '@{{ cable_version_esm1p6 }}' + - library=access-esm1.6 gcom4: require: - '@{{ gcom4_version }}' oasis3-mct: require: - - '@{{ oasis3_mct_version_esm1p6 }}' + - '@{{ oasis3_mct_version }}' access-fms: require: - '@{{ access_fms_version }}' diff --git a/.github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 b/.github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 index 50c2c1d44..18c08629e 100644 --- a/.github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 @@ -7,13 +7,14 @@ spack: - '@git.{{ ref }}=access-om2' cice5: require: - - '@{{ cice5_version_om2 }}' + - '@{{ cice5_version }}' + - 'io_type=PIO build_system=cmake' libaccessom2: require: - '@{{ libaccessom2_version }}' oasis3-mct: require: - - '@{{ oasis3_mct_version_om2 }}' + - '@{{ oasis3_mct_version }}' access-fms: require: - '@{{ access_fms_version }}' @@ -35,12 +36,9 @@ spack: openmpi: require: - '@{{ openmpi_version }}' - gcc-runtime: - require: - - '%gcc' all: require: - - '%{{ oneapi_compiler }} target=x86_64' + - '%{{ intel_compiler }} target=x86_64' concretizer: unify: false view: false diff --git a/.github/build-ci/manifests/pr/oneapi_access-esm1.6.spack.yaml.j2 b/.github/build-ci/manifests/pr/oneapi_access-esm1.6.spack.yaml.j2 index c5ce4fe8e..517f469a6 100644 --- a/.github/build-ci/manifests/pr/oneapi_access-esm1.6.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/oneapi_access-esm1.6.spack.yaml.j2 @@ -7,16 +7,21 @@ spack: - '@git.{{ ref }}=access-esm1.6' cice5: require: - - '@{{ cice5_version_esm1p6 }}' + - '@{{ cice5_version }}' + - 'nxglob=360 nyglob=300 blckx=30 blcky=300 mxblcks=1' # grid size and block size um7: require: - '@{{ um_version_esm1p6 }}' + cable: + require: + - '@{{ cable_version_esm1p6 }}' + - library=access-esm1.6 gcom4: require: - '@{{ gcom4_version }}' oasis3-mct: require: - - '@{{ oasis3_mct_version_esm1p6 }}' + - '@{{ oasis3_mct_version }}' access-fms: require: - '@{{ access_fms_version }}' @@ -35,9 +40,12 @@ spack: openmpi: require: - '@{{ openmpi_version }}' + gcc-runtime: + require: + - '%gcc' all: require: - - '%{{ intel_compiler }} target=x86_64' + - '%{{ oneapi_compiler }} target=x86_64' concretizer: unify: false view: false diff --git a/.github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 b/.github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 index 50c2c1d44..37fe2e195 100644 --- a/.github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 @@ -7,13 +7,14 @@ spack: - '@git.{{ ref }}=access-om2' cice5: require: - - '@{{ cice5_version_om2 }}' + - '@{{ cice5_version }}' + - 'io_type=PIO build_system=cmake' libaccessom2: require: - '@{{ libaccessom2_version }}' oasis3-mct: require: - - '@{{ oasis3_mct_version_om2 }}' + - '@{{ oasis3_mct_version }}' access-fms: require: - '@{{ access_fms_version }}' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2f0c3a174..0030cacce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,6 +29,9 @@ jobs: max-parallel: 4 matrix: file: ${{ fromJson(needs.pre-ci.outputs.matrix) }} + exclude: + # TODO: Remove this exclusion once https://github.com/ACCESS-NRI/GCOM4/issues/15 is fixed + - file: .github/build-ci/manifests/pr/gcc_access-esm1.6.spack.yaml.j2 uses: access-nri/build-ci/.github/workflows/ci.yml@v2 with: spack-manifest-path: ${{ matrix.file }} From ba277016aabe3cfebcfd43d928b372afcf56c841 Mon Sep 17 00:00:00 2001 From: dougiesquire Date: Tue, 24 Feb 2026 21:40:03 +1100 Subject: [PATCH 2/3] Pass CICE 1deg layout variants This is needed for Spack v0.22 but won't be for v1.1 --- .github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 | 1 + .github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 | 1 + .github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 | 1 + 3 files changed, 3 insertions(+) diff --git a/.github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 b/.github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 index 0483ff713..0d7c99042 100644 --- a/.github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 @@ -9,6 +9,7 @@ spack: require: - '@{{ cice5_version }}' - 'io_type=PIO build_system=cmake' + - 'nxglob=360 nyglob=300 blckx=15 blcky=300 mxblcks=1' # grid size and block size libaccessom2: require: - '@{{ libaccessom2_version }}' diff --git a/.github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 b/.github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 index 18c08629e..1ac2acccc 100644 --- a/.github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 @@ -9,6 +9,7 @@ spack: require: - '@{{ cice5_version }}' - 'io_type=PIO build_system=cmake' + - 'nxglob=360 nyglob=300 blckx=15 blcky=300 mxblcks=1' # grid size and block size libaccessom2: require: - '@{{ libaccessom2_version }}' diff --git a/.github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 b/.github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 index 37fe2e195..b63d0581b 100644 --- a/.github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 @@ -9,6 +9,7 @@ spack: require: - '@{{ cice5_version }}' - 'io_type=PIO build_system=cmake' + - 'nxglob=360 nyglob=300 blckx=15 blcky=300 mxblcks=1' # grid size and block size libaccessom2: require: - '@{{ libaccessom2_version }}' From 050564c36d605af1041cf659160281b9a5b9b693 Mon Sep 17 00:00:00 2001 From: dougiesquire Date: Tue, 24 Feb 2026 22:01:43 +1100 Subject: [PATCH 3/3] Don't use oasis3_mct@5.2 for ACCESS-OM2 --- .github/build-ci/data/standard.json | 7 ++++--- .../build-ci/manifests/pr/gcc_access-esm1.6.spack.yaml.j2 | 6 +++--- .github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 | 2 +- .../manifests/pr/intel_access-esm1.6.spack.yaml.j2 | 6 +++--- .../build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 | 2 +- .../manifests/pr/oneapi_access-esm1.6.spack.yaml.j2 | 6 +++--- .../build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 | 2 +- 7 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.github/build-ci/data/standard.json b/.github/build-ci/data/standard.json index c20432723..43201a31a 100644 --- a/.github/build-ci/data/standard.json +++ b/.github/build-ci/data/standard.json @@ -3,11 +3,12 @@ "gcc_compiler": "gcc@13.2.0", "oneapi_compiler": "oneapi@2025.2.0", "cice5_version": "2026.01.000", - "um_version_esm1p6": "git.2026.02.000=access-esm1.6", - "cable_version_esm1p6": "2025.11.000", + "um_version": "git.2026.02.000=access-esm1.6", + "cable_version": "2025.11.000", "gcom4_version": "git.2025.08.000=access-esm1.5", "libaccessom2_version": "git.2025.05.001=access-om2", - "oasis3_mct_version": "5.2", + "oasis3_mct_version_esm1p6": "5.2", + "oasis3_mct_version_om2": "git.2025.03.001=stable", "netcdf_c_version": "4.9.2", "netcdf_fortran_version": "4.6.1", "parallelio_version": "2.6.8", diff --git a/.github/build-ci/manifests/pr/gcc_access-esm1.6.spack.yaml.j2 b/.github/build-ci/manifests/pr/gcc_access-esm1.6.spack.yaml.j2 index 85a9de4cd..83ef2d43e 100644 --- a/.github/build-ci/manifests/pr/gcc_access-esm1.6.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/gcc_access-esm1.6.spack.yaml.j2 @@ -11,17 +11,17 @@ spack: - 'nxglob=360 nyglob=300 blckx=30 blcky=300 mxblcks=1' # grid size and block size um7: require: - - '@{{ um_version_esm1p6 }}' + - '@{{ um_version }}' cable: require: - - '@{{ cable_version_esm1p6 }}' + - '@{{ cable_version }}' - library=access-esm1.6 gcom4: require: - '@{{ gcom4_version }}' oasis3-mct: require: - - '@{{ oasis3_mct_version }}' + - '@{{ oasis3_mct_version_esm1p6 }}' access-fms: require: - '@{{ access_fms_version }}' diff --git a/.github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 b/.github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 index 0d7c99042..50a3d8b7f 100644 --- a/.github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/gcc_access-om2.spack.yaml.j2 @@ -15,7 +15,7 @@ spack: - '@{{ libaccessom2_version }}' oasis3-mct: require: - - '@{{ oasis3_mct_version }}' + - '@{{ oasis3_mct_version_om2 }}' access-fms: require: - '@{{ access_fms_version }}' diff --git a/.github/build-ci/manifests/pr/intel_access-esm1.6.spack.yaml.j2 b/.github/build-ci/manifests/pr/intel_access-esm1.6.spack.yaml.j2 index 90a450b31..a83ed2736 100644 --- a/.github/build-ci/manifests/pr/intel_access-esm1.6.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/intel_access-esm1.6.spack.yaml.j2 @@ -11,17 +11,17 @@ spack: - 'nxglob=360 nyglob=300 blckx=30 blcky=300 mxblcks=1' # grid size and block size um7: require: - - '@{{ um_version_esm1p6 }}' + - '@{{ um_version }}' cable: require: - - '@{{ cable_version_esm1p6 }}' + - '@{{ cable_version }}' - library=access-esm1.6 gcom4: require: - '@{{ gcom4_version }}' oasis3-mct: require: - - '@{{ oasis3_mct_version }}' + - '@{{ oasis3_mct_version_esm1p6 }}' access-fms: require: - '@{{ access_fms_version }}' diff --git a/.github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 b/.github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 index 1ac2acccc..1fc02ce82 100644 --- a/.github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/intel_access-om2.spack.yaml.j2 @@ -15,7 +15,7 @@ spack: - '@{{ libaccessom2_version }}' oasis3-mct: require: - - '@{{ oasis3_mct_version }}' + - '@{{ oasis3_mct_version_om2 }}' access-fms: require: - '@{{ access_fms_version }}' diff --git a/.github/build-ci/manifests/pr/oneapi_access-esm1.6.spack.yaml.j2 b/.github/build-ci/manifests/pr/oneapi_access-esm1.6.spack.yaml.j2 index 517f469a6..b483055b3 100644 --- a/.github/build-ci/manifests/pr/oneapi_access-esm1.6.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/oneapi_access-esm1.6.spack.yaml.j2 @@ -11,17 +11,17 @@ spack: - 'nxglob=360 nyglob=300 blckx=30 blcky=300 mxblcks=1' # grid size and block size um7: require: - - '@{{ um_version_esm1p6 }}' + - '@{{ um_version }}' cable: require: - - '@{{ cable_version_esm1p6 }}' + - '@{{ cable_version }}' - library=access-esm1.6 gcom4: require: - '@{{ gcom4_version }}' oasis3-mct: require: - - '@{{ oasis3_mct_version }}' + - '@{{ oasis3_mct_version_esm1p6 }}' access-fms: require: - '@{{ access_fms_version }}' diff --git a/.github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 b/.github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 index b63d0581b..7c5f885e5 100644 --- a/.github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/oneapi_access-om2.spack.yaml.j2 @@ -15,7 +15,7 @@ spack: - '@{{ libaccessom2_version }}' oasis3-mct: require: - - '@{{ oasis3_mct_version }}' + - '@{{ oasis3_mct_version_om2 }}' access-fms: require: - '@{{ access_fms_version }}'