From d64d3c8707232ebdd889e87ec9f6b04cd51d7848 Mon Sep 17 00:00:00 2001 From: Ryan Krattiger Date: Tue, 6 Jan 2026 11:24:18 -0600 Subject: [PATCH 1/6] Use build cache views feature in CI Signed-off-by: Ryan Krattiger --- .../configs/copy-only-protected-mirrors.yaml.in | 11 ----------- .ci/gitlab/configs/multi-src-mirrors.yaml.in | 14 +++++++++++--- .ci/gitlab/configs/single-src-pr-mirrors.yaml.in | 11 +++++++++-- .../configs/single-src-protected-mirrors.yaml.in | 11 +++++++++-- 4 files changed, 29 insertions(+), 18 deletions(-) delete mode 100644 .ci/gitlab/configs/copy-only-protected-mirrors.yaml.in diff --git a/.ci/gitlab/configs/copy-only-protected-mirrors.yaml.in b/.ci/gitlab/configs/copy-only-protected-mirrors.yaml.in deleted file mode 100644 index 39e5c733b23..00000000000 --- a/.ci/gitlab/configs/copy-only-protected-mirrors.yaml.in +++ /dev/null @@ -1,11 +0,0 @@ -mirrors: - buildcache-source: - fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/SPACK_REPLACE_VERSION/${SPACK_CI_STACK_NAME} - push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/SPACK_REPLACE_VERSION/${SPACK_CI_STACK_NAME} - source: False - binary: True - buildcache-destination: - fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME} - push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME} - source: False - binary: True diff --git a/.ci/gitlab/configs/multi-src-mirrors.yaml.in b/.ci/gitlab/configs/multi-src-mirrors.yaml.in index 14efe1d5516..40ac114be1d 100644 --- a/.ci/gitlab/configs/multi-src-mirrors.yaml.in +++ b/.ci/gitlab/configs/multi-src-mirrors.yaml.in @@ -1,11 +1,19 @@ mirrors: - buildcache-source: + buildcache-source-legacy: fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${PR_TARGET_REF_NAME}/${SPACK_CI_STACK_NAME} push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${PR_TARGET_REF_NAME}/${SPACK_CI_STACK_NAME} + view: ${SPACK_CI_STACK_NAME} + source: False + binary: True + buildcache-source: + fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${PR_TARGET_REF_NAME} + push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${PR_TARGET_REF_NAME} + view: ${SPACK_CI_STACK_NAME} source: False binary: True buildcache-destination: - fetch: ${PR_MIRROR_FETCH_DOMAIN}/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME} - push: ${PR_MIRROR_PUSH_DOMAIN}/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME} + fetch: ${PR_MIRROR_FETCH_DOMAIN}/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME} + push: ${PR_MIRROR_PUSH_DOMAIN}/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME} + view: ${SPACK_CI_STACK_NAME} source: False binary: True diff --git a/.ci/gitlab/configs/single-src-pr-mirrors.yaml.in b/.ci/gitlab/configs/single-src-pr-mirrors.yaml.in index 0a2775a4a27..c736caa97c3 100644 --- a/.ci/gitlab/configs/single-src-pr-mirrors.yaml.in +++ b/.ci/gitlab/configs/single-src-pr-mirrors.yaml.in @@ -1,6 +1,13 @@ mirrors: + # Look at the no view top level to avoid rebuilding the world + buildcache-noview: + fetch: ${PR_MIRROR_FETCH_DOMAIN}/${CI_COMMIT_REF_NAME} + push: ${PR_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME} + source: False + binary: True buildcache-destination: - fetch: ${PR_MIRROR_FETCH_DOMAIN}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME} - push: ${PR_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME} + fetch: ${PR_MIRROR_FETCH_DOMAIN}/${CI_COMMIT_REF_NAME} + push: ${PR_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME} + view: ${SPACK_CI_STACK_NAME} source: False binary: True diff --git a/.ci/gitlab/configs/single-src-protected-mirrors.yaml.in b/.ci/gitlab/configs/single-src-protected-mirrors.yaml.in index a55cd727375..81795e4a148 100644 --- a/.ci/gitlab/configs/single-src-protected-mirrors.yaml.in +++ b/.ci/gitlab/configs/single-src-protected-mirrors.yaml.in @@ -1,6 +1,13 @@ mirrors: + # Look at the no view top level to avoid rebuilding the world + buildcache-noview: + fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${CI_COMMIT_REF_NAME} + push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME} + source: False + binary: True buildcache-destination: - fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME} - push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME} + fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${CI_COMMIT_REF_NAME} + push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME} + view: ${SPACK_CI_STACK_NAME} source: False binary: True From 1b027bf9962a1e256abe0511b05ec772fcbc5504 Mon Sep 17 00:00:00 2001 From: Ryan Krattiger Date: Wed, 7 Jan 2026 16:13:54 -0600 Subject: [PATCH 2/6] Don't enable view for legacy mirror Signed-off-by: Ryan Krattiger --- .ci/gitlab/configs/multi-src-mirrors.yaml.in | 1 - 1 file changed, 1 deletion(-) diff --git a/.ci/gitlab/configs/multi-src-mirrors.yaml.in b/.ci/gitlab/configs/multi-src-mirrors.yaml.in index 40ac114be1d..ec2ee03ea09 100644 --- a/.ci/gitlab/configs/multi-src-mirrors.yaml.in +++ b/.ci/gitlab/configs/multi-src-mirrors.yaml.in @@ -2,7 +2,6 @@ mirrors: buildcache-source-legacy: fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${PR_TARGET_REF_NAME}/${SPACK_CI_STACK_NAME} push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${PR_TARGET_REF_NAME}/${SPACK_CI_STACK_NAME} - view: ${SPACK_CI_STACK_NAME} source: False binary: True buildcache-source: From f85c286aa6e0392eadafe8fa4330f5f574ccd137 Mon Sep 17 00:00:00 2001 From: Ryan Krattiger Date: Wed, 7 Jan 2026 16:25:51 -0600 Subject: [PATCH 3/6] Set buildcache mode to append Signed-off-by: Ryan Krattiger --- .ci/gitlab/.gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.ci/gitlab/.gitlab-ci.yml b/.ci/gitlab/.gitlab-ci.yml index 4b8acc283b3..b0e72fdabfe 100644 --- a/.ci/gitlab/.gitlab-ci.yml +++ b/.ci/gitlab/.gitlab-ci.yml @@ -59,6 +59,7 @@ default: ######################################## .base-job: variables: + SPACK_CI_BUILDCACHE_VIEW: "append" PIPELINE_MIRROR_TEMPLATE: "single-src-protected-mirrors.yaml.in" SPACK_CI_CONFIG_ROOT: "${SPACK_CI_PACKAGES_ROOT}/.ci/gitlab/configs" SPACK_CI_SCRIPTS_ROOT: "${SPACK_CI_PACKAGES_ROOT}/.ci/gitlab/scripts" From 117e46a2b9a888d8a688dbe207a24494c8240af8 Mon Sep 17 00:00:00 2001 From: Ryan Krattiger Date: Wed, 7 Jan 2026 16:24:29 -0600 Subject: [PATCH 4/6] !fixup: disable legacy and run only tutorial/build systems --- .ci/gitlab/.gitlab-ci.yml | 3 +++ .ci/gitlab/configs/multi-src-mirrors.yaml.in | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.ci/gitlab/.gitlab-ci.yml b/.ci/gitlab/.gitlab-ci.yml index b0e72fdabfe..b45db31fc44 100644 --- a/.ci/gitlab/.gitlab-ci.yml +++ b/.ci/gitlab/.gitlab-ci.yml @@ -15,6 +15,9 @@ variables: # SPACK_CI_ENABLE_STACKS: # value: /^.*(cray).*$/ # expand: false + SPACK_CI_ENABLE_STACKS: + value: /^.*(tutorial|build_systems).*$/ + expand: false default: image: { "name": "ghcr.io/spack/e4s-ubuntu-18.04:v2021-10-18", "entrypoint": [""] } diff --git a/.ci/gitlab/configs/multi-src-mirrors.yaml.in b/.ci/gitlab/configs/multi-src-mirrors.yaml.in index ec2ee03ea09..72902bd974d 100644 --- a/.ci/gitlab/configs/multi-src-mirrors.yaml.in +++ b/.ci/gitlab/configs/multi-src-mirrors.yaml.in @@ -1,9 +1,9 @@ mirrors: - buildcache-source-legacy: - fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${PR_TARGET_REF_NAME}/${SPACK_CI_STACK_NAME} - push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${PR_TARGET_REF_NAME}/${SPACK_CI_STACK_NAME} - source: False - binary: True + # buildcache-source-legacy: + # fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${PR_TARGET_REF_NAME}/${SPACK_CI_STACK_NAME} + # push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${PR_TARGET_REF_NAME}/${SPACK_CI_STACK_NAME} + # source: False + # binary: True buildcache-source: fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${PR_TARGET_REF_NAME} push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${PR_TARGET_REF_NAME} From f826f4562e4991aebba9a77c2c266d0adffd39a9 Mon Sep 17 00:00:00 2001 From: Ryan Krattiger Date: Wed, 7 Jan 2026 21:27:19 -0600 Subject: [PATCH 5/6] !fixup: rebuild mpich with fortran Signed-off-by: Ryan Krattiger --- stacks/build_systems/spack.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/stacks/build_systems/spack.yaml b/stacks/build_systems/spack.yaml index 7ce1b14c5df..3148ff091f5 100644 --- a/stacks/build_systems/spack.yaml +++ b/stacks/build_systems/spack.yaml @@ -17,6 +17,7 @@ spack: - 'uncrustify build_system=cmake' - lz4 # MakefilePackage - mpich~fortran # AutotoolsPackage + - mpich+fortran # AutotoolsPackage - py-setuptools # PythonPackage - openjpeg # CMakePackage - r-rcpp # RPackage From ab9ef3a77f091c41ddf767fe5e5ee4d1d09033f5 Mon Sep 17 00:00:00 2001 From: Ryan Krattiger Date: Thu, 28 May 2026 20:51:18 -0500 Subject: [PATCH 6/6] Fixups --- .ci/gitlab/configs/multi-src-mirrors.yaml.in | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.ci/gitlab/configs/multi-src-mirrors.yaml.in b/.ci/gitlab/configs/multi-src-mirrors.yaml.in index 72902bd974d..4b05e267dc0 100644 --- a/.ci/gitlab/configs/multi-src-mirrors.yaml.in +++ b/.ci/gitlab/configs/multi-src-mirrors.yaml.in @@ -1,9 +1,10 @@ mirrors: - # buildcache-source-legacy: - # fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${PR_TARGET_REF_NAME}/${SPACK_CI_STACK_NAME} - # push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${PR_TARGET_REF_NAME}/${SPACK_CI_STACK_NAME} - # source: False - # binary: True + # TODO: Remove the legacy upstream source mirror once views have populated sufficiently + buildcache-source-legacy: + fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${PR_TARGET_REF_NAME}/${SPACK_CI_STACK_NAME} + push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${PR_TARGET_REF_NAME}/${SPACK_CI_STACK_NAME} + source: False + binary: True buildcache-source: fetch: ${PROTECTED_MIRROR_FETCH_DOMAIN}/${PR_TARGET_REF_NAME} push: ${PROTECTED_MIRROR_PUSH_DOMAIN}/${PR_TARGET_REF_NAME}