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..884c1138e --- /dev/null +++ b/.github/build-ci/config/packages.yaml @@ -0,0 +1,19 @@ +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' 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..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 @@ -1,38 +1,20 @@ 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' 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 + 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/gcc_mom_access-esm1.5.spack.yaml.j2 b/.github/build-ci/manifests/scheduled/gcc_mom_access-esm1.5.spack.yaml.j2 index 83b9045b4..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 @@ -1,26 +1,17 @@ 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 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..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 @@ -1,26 +1,17 @@ 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 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..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 @@ -1,26 +1,17 @@ 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 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 }}