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/manifests/gcc.spack.yaml.j2 b/.github/build-ci/manifests/gcc.spack.yaml.j2 index 8582b3fc3..259087da1 100644 --- a/.github/build-ci/manifests/gcc.spack.yaml.j2 +++ b/.github/build-ci/manifests/gcc.spack.yaml.j2 @@ -1,17 +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: - cable@git.{{ ref }} - packages: - gcc: - require: - - '@{{ gcc_compiler_ver }}' - all: require: - - '%access_gcc' # https://github.com/ACCESS-NRI/spack-config/blob/main/v1.1/toolchains.yaml - - target={{ target }} - - concretizer: - unify: false + - '%access_gcc' view: false diff --git a/.github/build-ci/manifests/intel.spack.yaml.j2 b/.github/build-ci/manifests/intel.spack.yaml.j2 index 960178bf1..4da5c8b25 100644 --- a/.github/build-ci/manifests/intel.spack.yaml.j2 +++ b/.github/build-ci/manifests/intel.spack.yaml.j2 @@ -1,17 +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: - cable@git.{{ ref }} - packages: - intel-oneapi-compilers-classic: - require: - - '@{{ oneapi_compiler_classic_ver }}' - all: require: - - '%access_intel' # https://github.com/ACCESS-NRI/spack-config/blob/main/v1.1/toolchains.yaml - - target={{ target }} - - concretizer: - unify: false + - '%access_intel' view: false diff --git a/.github/build-ci/manifests/library-access3-gcc.spack.yaml.j2 b/.github/build-ci/manifests/library-access3-gcc.spack.yaml.j2 index c7664f332..de6cf8b06 100644 --- a/.github/build-ci/manifests/library-access3-gcc.spack.yaml.j2 +++ b/.github/build-ci/manifests/library-access3-gcc.spack.yaml.j2 @@ -1,17 +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: - cable@git.{{ ref }} ~mpi library=access3 - packages: - gcc: - require: - - '@{{ gcc_compiler_ver }}' - all: require: - '%access_gcc' - - 'target={{ target }}' - - concretizer: - unify: false view: false diff --git a/.github/build-ci/manifests/library-access3-intel.spack.yaml.j2 b/.github/build-ci/manifests/library-access3-intel.spack.yaml.j2 index c64b020e1..064ed8473 100644 --- a/.github/build-ci/manifests/library-access3-intel.spack.yaml.j2 +++ b/.github/build-ci/manifests/library-access3-intel.spack.yaml.j2 @@ -1,17 +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: - cable@git.{{ ref }} ~mpi library=access3 - packages: - intel-oneapi-compilers-classic: - require: - - '@{{ oneapi_compiler_classic_ver }}' - all: require: - '%access_intel' - - 'target={{ target }}' - - concretizer: - unify: false view: false diff --git a/.github/build-ci/manifests/library-esm1p6-gcc.spack.yaml.j2 b/.github/build-ci/manifests/library-esm1p6-gcc.spack.yaml.j2 index 3b4de6056..ae4e73be3 100644 --- a/.github/build-ci/manifests/library-esm1p6-gcc.spack.yaml.j2 +++ b/.github/build-ci/manifests/library-esm1p6-gcc.spack.yaml.j2 @@ -1,17 +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: - cable@git.{{ ref }} ~mpi library=access-esm1.6 - packages: - gcc: - require: - - '@{{ gcc_compiler_ver }}' - all: require: - '%access_gcc' - - 'target={{ target }}' - - concretizer: - unify: false view: false diff --git a/.github/build-ci/manifests/library-esm1p6-intel.spack.yaml.j2 b/.github/build-ci/manifests/library-esm1p6-intel.spack.yaml.j2 index 359fc2c71..039d47c11 100644 --- a/.github/build-ci/manifests/library-esm1p6-intel.spack.yaml.j2 +++ b/.github/build-ci/manifests/library-esm1p6-intel.spack.yaml.j2 @@ -1,17 +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: - cable@git.{{ ref }} ~mpi library=access-esm1.6 - packages: - intel-oneapi-compilers-classic: - require: - - '@{{ oneapi_compiler_classic_ver }}' - all: require: - '%access_intel' - - 'target={{ target }}' - - concretizer: - unify: false view: false diff --git a/.github/build-ci/manifests/um-access3.spack.yaml.j2 b/.github/build-ci/manifests/um-access3.spack.yaml.j2 index 2276448f4..ab37a2f21 100644 --- a/.github/build-ci/manifests/um-access3.spack.yaml.j2 +++ b/.github/build-ci/manifests/um-access3.spack.yaml.j2 @@ -1,27 +1,16 @@ 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: - um@13.0 +cable model=vn13 um_ref="AM3-dev" jules_ref="AM3-dev" ukca_ref="AM3-2026.08.000" shumlib_ref="2026.07.0" casim_ref="um13.8" socrates_ref="um13.8" - packages: cable: require: - '@git.{{ ref }}' - '~mpi' - 'library=access3' - - python: - require: - - '@3.11.14' - - intel-oneapi-compilers-classic: - require: - - '@{{ oneapi_compiler_classic_ver }}' - all: require: - '%access_intel' - - 'target={{ target }}' - view: false - concretizer: - unify: false diff --git a/.github/build-ci/manifests/um7-acces-esm1p6.spack.yaml.j2 b/.github/build-ci/manifests/um7-acces-esm1p6.spack.yaml.j2 index 289733ebf..d5710f918 100644 --- a/.github/build-ci/manifests/um7-acces-esm1p6.spack.yaml.j2 +++ b/.github/build-ci/manifests/um7-acces-esm1p6.spack.yaml.j2 @@ -1,5 +1,8 @@ # Building UM7 stand-alone using access-esm1.6 spack version 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: - 'um7' packages: @@ -26,13 +29,7 @@ spack: require: - '@2021.05.0' - 'site=nci-gadi' - intel-oneapi-compilers: - require: - - '@{{ oneapi_compiler_ver }}' all: require: - '%access_oneapi' - - 'target={{ target }}' - concretizer: - unify: false view: false diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0cbebdb88..8708ece4d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,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,21 +29,16 @@ 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 spack-oci-buildcache-url: oci://ghcr.io/CABLE-LSM/build-ci-buildcache spack-compiler-manifest-path: .github/build-ci/compilers/spack.yaml - # builtin-spack-packages-ref: develop - # access-spack-packages-ref: api-v2 - # spack-config-ref: main - # spack-ref: releases/v1.1 - # CABLE isn't part of the ACCESS-NRI org so can't access the runners run-self-hosted: false - + # Default args (including explicit spack/spack-config versions) + # are specified in https://github.com/ACCESS-NRI/build-ci/tree/v4/.github/workflows#inputs secrets: # Needed to access private ACCESS-NRI repos spack-install-command-pat: ${{ secrets.SPACK_INSTALL_COMMAND_PAT }}