From 9ad0678d3a79749173d3bed3339a04d1cd59b134 Mon Sep 17 00:00:00 2001 From: Tommy Gatti Date: Wed, 16 Sep 2026 14:04:46 +1000 Subject: [PATCH 1/3] 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/data/standard.json | 6 ------ .../manifests/gcc-no-access3.spack.yaml.j2 | 15 ++++--------- .../manifests/intel-access3.spack.yaml.j2 | 14 ++++--------- .../manifests/intel-no-access3.spack.yaml.j2 | 15 ++++--------- .../manifests/oneapi-access3.spack.yaml.j2 | 21 +++++-------------- .../manifests/oneapi-no-access3.spack.yaml.j2 | 21 +++++-------------- .github/workflows/ci.yml | 8 +++---- 8 files changed, 31 insertions(+), 75 deletions(-) create mode 100644 .github/build-ci/config/include.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/data/standard.json b/.github/build-ci/data/standard.json deleted file mode 100644 index 0022304fc..000000000 --- a/.github/build-ci/data/standard.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "gcc_compiler_version": "13.2.0", - "intel_compiler_version": "2021.10.0", - "oneapi_compiler_version": "2025.2.0", - "target": "x86_64" -} diff --git a/.github/build-ci/manifests/gcc-no-access3.spack.yaml.j2 b/.github/build-ci/manifests/gcc-no-access3.spack.yaml.j2 index 57fac0272..095c37e64 100644 --- a/.github/build-ci/manifests/gcc-no-access3.spack.yaml.j2 +++ b/.github/build-ci/manifests/gcc-no-access3.spack.yaml.j2 @@ -1,14 +1,7 @@ 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-ww3 @git.{{ ref }} ~access3 - packages: - gcc: - require: - - '@{{ gcc_compiler_version }}' - all: - require: - - '%access_gcc' - - target={{ target }} - concretizer: - unify: false + - access-ww3 @git.{{ ref }} ~access3 %%access_gcc view: false diff --git a/.github/build-ci/manifests/intel-access3.spack.yaml.j2 b/.github/build-ci/manifests/intel-access3.spack.yaml.j2 index 149eb729e..eaf8269a3 100644 --- a/.github/build-ci/manifests/intel-access3.spack.yaml.j2 +++ b/.github/build-ci/manifests/intel-access3.spack.yaml.j2 @@ -1,19 +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: - - access-ww3 @git.{{ ref }} +access3 + - access-ww3 @git.{{ ref }} +access3 %%access_intel packages: # We pin a version of python as spack v1.1 has trouble building the default latest # python@3.14.3%intel@2021.10.0 due to a segfault. python: require: - '@3.11.14' - intel-oneapi-compilers-classic: - require: - - '@{{ intel_compiler_version }}' - all: - require: - - '%access_intel' - - target={{ target }} - concretizer: - unify: false view: false diff --git a/.github/build-ci/manifests/intel-no-access3.spack.yaml.j2 b/.github/build-ci/manifests/intel-no-access3.spack.yaml.j2 index 7640cfbfd..9fe4ffebd 100644 --- a/.github/build-ci/manifests/intel-no-access3.spack.yaml.j2 +++ b/.github/build-ci/manifests/intel-no-access3.spack.yaml.j2 @@ -1,14 +1,7 @@ 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-ww3 @git.{{ ref }} ~access3 - packages: - intel-oneapi-compilers-classic: - require: - - '@{{ intel_compiler_version }}' - all: - require: - - '%access_intel' - - target={{ target }} - concretizer: - unify: false + - access-ww3 @git.{{ ref }} ~access3 %%access_intel view: false diff --git a/.github/build-ci/manifests/oneapi-access3.spack.yaml.j2 b/.github/build-ci/manifests/oneapi-access3.spack.yaml.j2 index ce7f7e378..3cf3afe87 100644 --- a/.github/build-ci/manifests/oneapi-access3.spack.yaml.j2 +++ b/.github/build-ci/manifests/oneapi-access3.spack.yaml.j2 @@ -1,19 +1,8 @@ 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-ww3 @git.{{ ref }} +access3 build_type=Debug - - access-ww3 @git.{{ ref }} +access3 - packages: - gcc-runtime: - require: - - '%access_gcc' - - target={{ target }} - intel-oneapi-compilers: - require: - - '@{{ oneapi_compiler_version }}' - all: - require: - - '%access_oneapi' - - target={{ target }} - concretizer: - unify: false + - access-ww3 @git.{{ ref }} +access3 build_type=Debug %%access_oneapi + - access-ww3 @git.{{ ref }} +access3 %%access_oneapi view: false diff --git a/.github/build-ci/manifests/oneapi-no-access3.spack.yaml.j2 b/.github/build-ci/manifests/oneapi-no-access3.spack.yaml.j2 index 8c875f227..f7a2ea259 100644 --- a/.github/build-ci/manifests/oneapi-no-access3.spack.yaml.j2 +++ b/.github/build-ci/manifests/oneapi-no-access3.spack.yaml.j2 @@ -1,19 +1,8 @@ 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-ww3 @git.{{ ref }} ~access3 +openmp - - access-ww3 @git.{{ ref }} ~access3 - packages: - gcc-runtime: - require: - - '%access_gcc' - - target={{ target }} - intel-oneapi-compilers: - require: - - '@{{ oneapi_compiler_version }}' - all: - require: - - '%access_oneapi' - - target={{ target }} - concretizer: - unify: false + - access-ww3 @git.{{ ref }} ~access3 +openmp %%access_oneapi + - access-ww3 @git.{{ ref }} ~access3 %%access_oneapi view: false diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 378fe0e70..fd05845f3 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 @@ -30,10 +30,8 @@ jobs: max-parallel: 5 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 }} allow-ssh-into-spack-install: false # If true, PR author must ssh into instance to complete job - spack-manifest-data-path: .github/build-ci/data/standard.json - # 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 + # More args, including setting spack/spack-config refs, can be found in https://github.com/ACCESS-NRI/build-ci/blob/v4/.github/workflows/README.md From b3edbf65064ac844c0ee21afdcc47942ce9c7448 Mon Sep 17 00:00:00 2001 From: Tommy Gatti Date: Fri, 18 Sep 2026 10:00:55 +1000 Subject: [PATCH 2/3] 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> --- .github/build-ci/manifests/gcc-no-access3.spack.yaml.j2 | 6 +++++- .github/build-ci/manifests/intel-access3.spack.yaml.j2 | 5 ++++- .github/build-ci/manifests/intel-no-access3.spack.yaml.j2 | 6 +++++- .github/build-ci/manifests/oneapi-access3.spack.yaml.j2 | 8 ++++++-- .../build-ci/manifests/oneapi-no-access3.spack.yaml.j2 | 8 ++++++-- 5 files changed, 26 insertions(+), 7 deletions(-) diff --git a/.github/build-ci/manifests/gcc-no-access3.spack.yaml.j2 b/.github/build-ci/manifests/gcc-no-access3.spack.yaml.j2 index 095c37e64..fde0a377a 100644 --- a/.github/build-ci/manifests/gcc-no-access3.spack.yaml.j2 +++ b/.github/build-ci/manifests/gcc-no-access3.spack.yaml.j2 @@ -3,5 +3,9 @@ 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-ww3 @git.{{ ref }} ~access3 %%access_gcc + - access-ww3 @git.{{ ref }} ~access3 + packages: + all: + require: + - '%access_gcc' view: false diff --git a/.github/build-ci/manifests/intel-access3.spack.yaml.j2 b/.github/build-ci/manifests/intel-access3.spack.yaml.j2 index eaf8269a3..072575f6d 100644 --- a/.github/build-ci/manifests/intel-access3.spack.yaml.j2 +++ b/.github/build-ci/manifests/intel-access3.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-ww3 @git.{{ ref }} +access3 %%access_intel + - access-ww3 @git.{{ ref }} +access3 packages: # We pin a version of python as spack v1.1 has trouble building the default latest # python@3.14.3%intel@2021.10.0 due to a segfault. python: require: - '@3.11.14' + all: + require: + - '%access_intel' view: false diff --git a/.github/build-ci/manifests/intel-no-access3.spack.yaml.j2 b/.github/build-ci/manifests/intel-no-access3.spack.yaml.j2 index 9fe4ffebd..aab7a51ab 100644 --- a/.github/build-ci/manifests/intel-no-access3.spack.yaml.j2 +++ b/.github/build-ci/manifests/intel-no-access3.spack.yaml.j2 @@ -3,5 +3,9 @@ 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-ww3 @git.{{ ref }} ~access3 %%access_intel + - access-ww3 @git.{{ ref }} ~access3 + packages: + all: + require: + - '%access_intel' view: false diff --git a/.github/build-ci/manifests/oneapi-access3.spack.yaml.j2 b/.github/build-ci/manifests/oneapi-access3.spack.yaml.j2 index 3cf3afe87..465172e5c 100644 --- a/.github/build-ci/manifests/oneapi-access3.spack.yaml.j2 +++ b/.github/build-ci/manifests/oneapi-access3.spack.yaml.j2 @@ -3,6 +3,10 @@ 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-ww3 @git.{{ ref }} +access3 build_type=Debug %%access_oneapi - - access-ww3 @git.{{ ref }} +access3 %%access_oneapi + - access-ww3 @git.{{ ref }} +access3 build_type=Debug + - access-ww3 @git.{{ ref }} +access3 + packages: + all: + require: + - '%access_oneapi' view: false diff --git a/.github/build-ci/manifests/oneapi-no-access3.spack.yaml.j2 b/.github/build-ci/manifests/oneapi-no-access3.spack.yaml.j2 index f7a2ea259..aa2781a49 100644 --- a/.github/build-ci/manifests/oneapi-no-access3.spack.yaml.j2 +++ b/.github/build-ci/manifests/oneapi-no-access3.spack.yaml.j2 @@ -3,6 +3,10 @@ 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-ww3 @git.{{ ref }} ~access3 +openmp %%access_oneapi - - access-ww3 @git.{{ ref }} ~access3 %%access_oneapi + - access-ww3 @git.{{ ref }} ~access3 +openmp + - access-ww3 @git.{{ ref }} ~access3 + packages: + all: + require: + - '%access_oneapi' view: false From 742fce9747706a13363253cdef92d02537bdb945 Mon Sep 17 00:00:00 2001 From: Tommy Gatti Date: Tue, 22 Sep 2026 15:01:09 +1000 Subject: [PATCH 3/3] Unpin python from intel-access3 build --- .github/build-ci/manifests/intel-access3.spack.yaml.j2 | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/build-ci/manifests/intel-access3.spack.yaml.j2 b/.github/build-ci/manifests/intel-access3.spack.yaml.j2 index 072575f6d..a26cac4a4 100644 --- a/.github/build-ci/manifests/intel-access3.spack.yaml.j2 +++ b/.github/build-ci/manifests/intel-access3.spack.yaml.j2 @@ -5,11 +5,6 @@ spack: specs: - access-ww3 @git.{{ ref }} +access3 packages: - # We pin a version of python as spack v1.1 has trouble building the default latest - # python@3.14.3%intel@2021.10.0 due to a segfault. - python: - require: - - '@3.11.14' all: require: - '%access_intel'