From f6fa9c335397c1b91349c7aa426d231acc0c8673 Mon Sep 17 00:00:00 2001 From: Tommy Gatti Date: Thu, 17 Sep 2026 16:43:38 +1000 Subject: [PATCH 1/4] build-ci@v4 migration: Simplify manifests to use local included config, deprecate spack-packages/datafile workflow inputs Assisted-by: Claude Fable 5 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/build-ci/config/include.yaml | 6 ++++ .github/build-ci/config/packages.yaml | 22 ++++++++++++ .github/build-ci/data/standard.json | 12 ------- .../pr/intel_access-esm1.5.spack.yaml.j2 | 35 +++---------------- .../gcc_mom_access-esm1.5.spack.yaml.j2 | 33 ++++++----------- .../intel_mom_access-esm1.5.spack.yaml.j2 | 33 ++++++----------- .../oneapi_mom_access-esm1.5.spack.yaml.j2 | 33 ++++++----------- .github/workflows/ci.yml | 9 +++-- 8 files changed, 66 insertions(+), 117 deletions(-) create mode 100644 .github/build-ci/config/include.yaml create mode 100644 .github/build-ci/config/packages.yaml delete mode 100644 .github/build-ci/data/standard.json diff --git a/.github/build-ci/config/include.yaml b/.github/build-ci/config/include.yaml new file mode 100644 index 000000000..8c8139c71 --- /dev/null +++ b/.github/build-ci/config/include.yaml @@ -0,0 +1,6 @@ +# This file is included via the manifest +include: + - git: https://github.com/ACCESS-NRI/access-spack-packages + branch: api-v2 + paths: + - .github/build-ci/config/include diff --git a/.github/build-ci/config/packages.yaml b/.github/build-ci/config/packages.yaml new file mode 100644 index 000000000..68d73bf7b --- /dev/null +++ b/.github/build-ci/config/packages.yaml @@ -0,0 +1,22 @@ +packages: + cice4: + require: + - '@git.access-esm1.5-2025.04.001=access-esm1.5' + um7: + require: + - '@git.2024.10.17=access-esm1.5' + gcom4: + require: + - '@git.2024.05.28=access-esm1.5' + oasis3-mct: + require: + - '@git.access-esm1.5_2024.05.24=access-esm1.5' + netcdf-c: + require: + - '@4.9.2' + netcdf-fortran: + require: + - '@4.6.1' + openmpi: + require: + - '@5.0.5' diff --git a/.github/build-ci/data/standard.json b/.github/build-ci/data/standard.json deleted file mode 100644 index 4dd07aabb..000000000 --- a/.github/build-ci/data/standard.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "intel_compiler_version": "2021.10.0", - "gcc_compiler_version": "13.2.0", - "oneapi_compiler_version": "2025.2.0", - "cice4_version": "git.access-esm1.5-2025.04.001=access-esm1.5", - "um_version": "git.2024.10.17=access-esm1.5", - "gcom4_version": "git.2024.05.28=access-esm1.5", - "oasis3_mct_version": "git.access-esm1.5_2024.05.24=access-esm1.5", - "netcdf_c_version": "4.9.2", - "netcdf_fortran_version": "4.6.1", - "openmpi_version": "5.0.5" -} diff --git a/.github/build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 b/.github/build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 index 1f2c70539..6f1ea43db 100644 --- a/.github/build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 @@ -1,38 +1,11 @@ spack: + include: + # Include configuration from this repository, with the environment variable defined in build-ci + - path: $SPACK_MANIFEST_REPOSITORY_PATH/.github/build-ci/config specs: - - 'access-esm1p5@latest' + - 'access-esm1p5@latest %%access_intel' packages: mom5: require: - '@git.{{ ref }}=access-esm1.5' - cice4: - require: - - '@{{ cice4_version }}' - um7: - require: - - '@{{ um_version }}' - gcom4: - require: - - '@{{ gcom4_version }}' - oasis3-mct: - require: - - '@{{ oasis3_mct_version }}' - netcdf-c: - require: - - '@{{ netcdf_c_version }}' - netcdf-fortran: - require: - - '@{{ netcdf_fortran_version }}' - openmpi: - require: - - '@{{ openmpi_version }}' - intel-oneapi-compilers-classic: - require: - - '@{{ intel_compiler_version }}' - all: - require: - - '%access_intel' - - 'target=x86_64' - concretizer: - unify: false view: false diff --git a/.github/build-ci/manifests/scheduled/gcc_mom_access-esm1.5.spack.yaml.j2 b/.github/build-ci/manifests/scheduled/gcc_mom_access-esm1.5.spack.yaml.j2 index 83b9045b4..3b51b6aa7 100644 --- a/.github/build-ci/manifests/scheduled/gcc_mom_access-esm1.5.spack.yaml.j2 +++ b/.github/build-ci/manifests/scheduled/gcc_mom_access-esm1.5.spack.yaml.j2 @@ -1,26 +1,13 @@ spack: + include: + # Include configuration from this repository, with the environment variable defined in build-ci + - path: $SPACK_MANIFEST_REPOSITORY_PATH/.github/build-ci/config specs: - - mom5@git.{{ ref }}=access-esm1.5 - packages: - oasis3-mct: - require: - - '@{{ oasis3_mct_version }}' - netcdf-c: - require: - - '@{{ netcdf_c_version }}' - netcdf-fortran: - require: - - '@{{ netcdf_fortran_version }}' - openmpi: - require: - - '@{{ openmpi_version }}' - gcc: - require: - - '@{{ gcc_compiler_version }}' - all: - require: - - '%access_gcc' - - 'target=x86_64' - concretizer: - unify: false + - mom5@git.{{ ref }}=access-esm1.5 %%access_gcc view: false + repos: + # The @access-esm1.5 version for manifests is only available < 2026.08.000, so we are pinned here + access_spack_packages: + git: https://github.com/ACCESS-NRI/access-spack-packages.git + tag: 2026.07.013 + destination: $env/package-repos/access-spack-packages diff --git a/.github/build-ci/manifests/scheduled/intel_mom_access-esm1.5.spack.yaml.j2 b/.github/build-ci/manifests/scheduled/intel_mom_access-esm1.5.spack.yaml.j2 index 674914dbf..d6ae874ec 100644 --- a/.github/build-ci/manifests/scheduled/intel_mom_access-esm1.5.spack.yaml.j2 +++ b/.github/build-ci/manifests/scheduled/intel_mom_access-esm1.5.spack.yaml.j2 @@ -1,26 +1,13 @@ spack: + include: + # Include configuration from this repository, with the environment variable defined in build-ci + - path: $SPACK_MANIFEST_REPOSITORY_PATH/.github/build-ci/config specs: - - mom5@git.{{ ref }}=access-esm1.5 - packages: - oasis3-mct: - require: - - '@{{ oasis3_mct_version }}' - netcdf-c: - require: - - '@{{ netcdf_c_version }}' - netcdf-fortran: - require: - - '@{{ netcdf_fortran_version }}' - openmpi: - require: - - '@{{ openmpi_version }}' - intel-oneapi-compilers-classic: - require: - - '@{{ intel_compiler_version }}' - all: - require: - - '%access_intel' - - 'target=x86_64' - concretizer: - unify: false + - mom5@git.{{ ref }}=access-esm1.5 %%access_intel view: false + repos: + # The @access-esm1.5 version for manifests is only available < 2026.08.000, so we are pinned here + access_spack_packages: + git: https://github.com/ACCESS-NRI/access-spack-packages.git + tag: 2026.07.013 + destination: $env/package-repos/access-spack-packages diff --git a/.github/build-ci/manifests/scheduled/oneapi_mom_access-esm1.5.spack.yaml.j2 b/.github/build-ci/manifests/scheduled/oneapi_mom_access-esm1.5.spack.yaml.j2 index de84f4ded..be0fb0510 100644 --- a/.github/build-ci/manifests/scheduled/oneapi_mom_access-esm1.5.spack.yaml.j2 +++ b/.github/build-ci/manifests/scheduled/oneapi_mom_access-esm1.5.spack.yaml.j2 @@ -1,26 +1,13 @@ spack: + include: + # Include configuration from this repository, with the environment variable defined in build-ci + - path: $SPACK_MANIFEST_REPOSITORY_PATH/.github/build-ci/config specs: - - mom5@git.{{ ref }}=access-esm1.5 - packages: - oasis3-mct: - require: - - '@{{ oasis3_mct_version }}' - netcdf-c: - require: - - '@{{ netcdf_c_version }}' - netcdf-fortran: - require: - - '@{{ netcdf_fortran_version }}' - openmpi: - require: - - '@{{ openmpi_version }}' - intel-oneapi-compilers-classic: - require: - - '@{{ oneapi_compiler_version }}' - all: - require: - - '%access_oneapi' - - 'target=x86_64' - concretizer: - unify: false + - mom5@git.{{ ref }}=access-esm1.5 %%access_oneapi view: false + repos: + # The @access-esm1.5 version for manifests is only available < 2026.08.000, so we are pinned here + access_spack_packages: + git: https://github.com/ACCESS-NRI/access-spack-packages.git + tag: 2026.07.013 + destination: $env/package-repos/access-spack-packages diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index df5128eb5..47cd0c31e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Set up matrix id: set-matrix @@ -29,12 +29,11 @@ jobs: max-parallel: 4 matrix: file: ${{ fromJson(needs.pre-ci.outputs.matrix) }} - uses: access-nri/build-ci/.github/workflows/ci.yml@v3 + uses: access-nri/build-ci/.github/workflows/ci.yml@v4 with: spack-manifest-path: ${{ matrix.file }} - spack-manifest-data-path: .github/build-ci/data/standard.json allow-ssh-into-spack-install: false # If true, PR author must ssh into instance to complete job - # Default args (including explicit spack/spack-packages/spack-config versions) - # are specified in https://github.com/ACCESS-NRI/build-ci/tree/v3/.github/workflows#inputs + # Default args (including explicit spack/spack-config versions) + # are specified in https://github.com/ACCESS-NRI/build-ci/tree/v4/.github/workflows#inputs secrets: spack-install-command-pat: ${{ secrets.SPACK_INSTALL_COMMAND_PAT }} From 6fce90c5309abb8bdbb983d422bd84082e7e4f14 Mon Sep 17 00:00:00 2001 From: Tommy Gatti Date: Thu, 17 Sep 2026 17:12:19 +1000 Subject: [PATCH 2/4] Add repos section to PR build --- .../build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 b/.github/build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 index 6f1ea43db..5e5b4ad81 100644 --- a/.github/build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 @@ -9,3 +9,9 @@ spack: require: - '@git.{{ ref }}=access-esm1.5' view: false + repos: + # The @access-esm1.5 version for manifests is only available < 2026.08.000, so we are pinned here + access_spack_packages: + git: https://github.com/ACCESS-NRI/access-spack-packages.git + tag: 2026.07.013 + destination: $env/package-repos/access-spack-packages From 5d67ec572080de635835c125a2a8e5932d1d5556 Mon Sep 17 00:00:00 2001 From: Tommy Gatti Date: Fri, 18 Sep 2026 10:00:53 +1000 Subject: [PATCH 3/4] Moved from propagating toolchain to all.require toolchain due to spack bug Assisted-by: Claude Fable 5 (claude-fable-5) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 | 5 ++++- .../manifests/scheduled/gcc_mom_access-esm1.5.spack.yaml.j2 | 6 +++++- .../scheduled/intel_mom_access-esm1.5.spack.yaml.j2 | 6 +++++- .../scheduled/oneapi_mom_access-esm1.5.spack.yaml.j2 | 6 +++++- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 b/.github/build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 index 5e5b4ad81..de0084d65 100644 --- a/.github/build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 +++ b/.github/build-ci/manifests/pr/intel_access-esm1.5.spack.yaml.j2 @@ -3,11 +3,14 @@ spack: # Include configuration from this repository, with the environment variable defined in build-ci - path: $SPACK_MANIFEST_REPOSITORY_PATH/.github/build-ci/config specs: - - 'access-esm1p5@latest %%access_intel' + - 'access-esm1p5@latest' packages: mom5: require: - '@git.{{ ref }}=access-esm1.5' + all: + require: + - '%access_intel' view: false repos: # The @access-esm1.5 version for manifests is only available < 2026.08.000, so we are pinned here diff --git a/.github/build-ci/manifests/scheduled/gcc_mom_access-esm1.5.spack.yaml.j2 b/.github/build-ci/manifests/scheduled/gcc_mom_access-esm1.5.spack.yaml.j2 index 3b51b6aa7..327772889 100644 --- a/.github/build-ci/manifests/scheduled/gcc_mom_access-esm1.5.spack.yaml.j2 +++ b/.github/build-ci/manifests/scheduled/gcc_mom_access-esm1.5.spack.yaml.j2 @@ -3,7 +3,11 @@ spack: # Include configuration from this repository, with the environment variable defined in build-ci - path: $SPACK_MANIFEST_REPOSITORY_PATH/.github/build-ci/config specs: - - mom5@git.{{ ref }}=access-esm1.5 %%access_gcc + - mom5@git.{{ ref }}=access-esm1.5 + packages: + all: + require: + - '%access_gcc' view: false repos: # The @access-esm1.5 version for manifests is only available < 2026.08.000, so we are pinned here diff --git a/.github/build-ci/manifests/scheduled/intel_mom_access-esm1.5.spack.yaml.j2 b/.github/build-ci/manifests/scheduled/intel_mom_access-esm1.5.spack.yaml.j2 index d6ae874ec..18340cbee 100644 --- a/.github/build-ci/manifests/scheduled/intel_mom_access-esm1.5.spack.yaml.j2 +++ b/.github/build-ci/manifests/scheduled/intel_mom_access-esm1.5.spack.yaml.j2 @@ -3,7 +3,11 @@ spack: # Include configuration from this repository, with the environment variable defined in build-ci - path: $SPACK_MANIFEST_REPOSITORY_PATH/.github/build-ci/config specs: - - mom5@git.{{ ref }}=access-esm1.5 %%access_intel + - mom5@git.{{ ref }}=access-esm1.5 + packages: + all: + require: + - '%access_intel' view: false repos: # The @access-esm1.5 version for manifests is only available < 2026.08.000, so we are pinned here diff --git a/.github/build-ci/manifests/scheduled/oneapi_mom_access-esm1.5.spack.yaml.j2 b/.github/build-ci/manifests/scheduled/oneapi_mom_access-esm1.5.spack.yaml.j2 index be0fb0510..5b095f695 100644 --- a/.github/build-ci/manifests/scheduled/oneapi_mom_access-esm1.5.spack.yaml.j2 +++ b/.github/build-ci/manifests/scheduled/oneapi_mom_access-esm1.5.spack.yaml.j2 @@ -3,7 +3,11 @@ spack: # Include configuration from this repository, with the environment variable defined in build-ci - path: $SPACK_MANIFEST_REPOSITORY_PATH/.github/build-ci/config specs: - - mom5@git.{{ ref }}=access-esm1.5 %%access_oneapi + - mom5@git.{{ ref }}=access-esm1.5 + packages: + all: + require: + - '%access_oneapi' view: false repos: # The @access-esm1.5 version for manifests is only available < 2026.08.000, so we are pinned here From 15665d685282c55aae933eb647bf2ea3f7c531d3 Mon Sep 17 00:00:00 2001 From: Tommy Gatti Date: Fri, 18 Sep 2026 16:15:24 +1000 Subject: [PATCH 4/4] Remove openmpi constraints in favour of ASP default 5.0.8 --- .github/build-ci/config/packages.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/build-ci/config/packages.yaml b/.github/build-ci/config/packages.yaml index 68d73bf7b..884c1138e 100644 --- a/.github/build-ci/config/packages.yaml +++ b/.github/build-ci/config/packages.yaml @@ -17,6 +17,3 @@ packages: netcdf-fortran: require: - '@4.6.1' - openmpi: - require: - - '@5.0.5'