diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c3824656..9fcd2699 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -76,7 +76,7 @@ stages: include: - local: '.gitlab/custom-jobs-and-variables.yml' - project: 'radiuss/radiuss-shared-ci' - ref: 'v2025.09.0' + ref: 'v2025.09.1' file: 'pipelines/${CI_MACHINE}.yml' - artifact: '${CI_MACHINE}-jobs.yml' job: 'generate-job-lists' @@ -90,7 +90,7 @@ include: file: 'id_tokens.yml' # [Optional] checks preliminary to running the actual CI test - project: 'radiuss/radiuss-shared-ci' - ref: 'v2025.09.0' + ref: 'v2025.09.1' file: 'utilities/preliminary-ignore-draft-pr.yml' # pipelines subscribed by the project - local: '.gitlab/subscribed-pipelines.yml' diff --git a/.gitlab/custom-jobs-and-variables.yml b/.gitlab/custom-jobs-and-variables.yml index 6c7ef28b..e30e7e34 100644 --- a/.gitlab/custom-jobs-and-variables.yml +++ b/.gitlab/custom-jobs-and-variables.yml @@ -22,6 +22,16 @@ variables: # Project specific deps for dane PROJECT_DANE_DEPS: "" +# Matrix +# Arguments for top level allocation + MATRIX_SHARED_ALLOC: "--exclusive --partition=pci --time=10 --nodes=1" +# Arguments for job level allocation + MATRIX_JOB_ALLOC: "--partition=pci --overlap --nodes=1" +# Project specific variants for matrix + PROJECT_MATRIX_VARIANTS: "+tests ~papi +cuda cuda_arch=75" +# Project specific deps for matrix + PROJECT_MATRIX_DEPS: "" + # Corona # Arguments for top level allocation CORONA_SHARED_ALLOC: "--exclusive --time-limit=8m --nodes=1 -o per-resource.count=2" diff --git a/.gitlab/jobs/matrix.yml b/.gitlab/jobs/matrix.yml new file mode 100644 index 00000000..0b2ae7d4 --- /dev/null +++ b/.gitlab/jobs/matrix.yml @@ -0,0 +1,12 @@ +############################################################################## +# Copyright (c) 2022-25, Lawrence Livermore National Security, LLC and RADIUSS +# project contributors. See the COPYRIGHT file for details. +# +# SPDX-License-Identifier: (MIT) +############################################################################## + +# Override reproducer section to define project specific variables. +.matrix_reproducer_vars: + script: + - !reference [.reproducer_vars, script] + diff --git a/.gitlab/subscribed-pipelines.yml b/.gitlab/subscribed-pipelines.yml index 3998590f..fe00fae0 100644 --- a/.gitlab/subscribed-pipelines.yml +++ b/.gitlab/subscribed-pipelines.yml @@ -38,6 +38,7 @@ generate-job-lists: LOCAL_JOBS_PATH: ".gitlab/jobs" script: - cat ${RADIUSS_JOBS_PATH}/dane.yml ${LOCAL_JOBS_PATH}/dane.yml > dane-jobs.yml + - cat ${RADIUSS_JOBS_PATH}/matrix.yml ${LOCAL_JOBS_PATH}/matrix.yml > matrix-jobs.yml - cat ${RADIUSS_JOBS_PATH}/lassen.yml ${LOCAL_JOBS_PATH}/lassen.yml > lassen-jobs.yml - cat ${RADIUSS_JOBS_PATH}/corona.yml ${LOCAL_JOBS_PATH}/corona.yml > corona-jobs.yml - cat ${RADIUSS_JOBS_PATH}/tioga.yml ${LOCAL_JOBS_PATH}/tioga.yml > tioga-jobs.yml @@ -45,6 +46,7 @@ generate-job-lists: artifacts: paths: - dane-jobs.yml + - matrix-jobs.yml - lassen-jobs.yml - corona-jobs.yml - tioga-jobs.yml @@ -72,6 +74,28 @@ dane-build-and-test: when: never - when: on_success +# MATRIX +matrix-up-check: + variables: + CI_MACHINE: "matrix" + extends: [.machine-check] + rules: + # Runs except if we explicitly deactivate matrix by variable. + - if: '$ON_MATRIX == "OFF"' + when: never + - when: on_success + +matrix-build-and-test: + variables: + CI_MACHINE: "matrix" + needs: [matrix-up-check, generate-job-lists] + extends: [.build-and-test] + rules: + # Runs except if we explicitly deactivate matrix by variable. + - if: '$ON_MATRIX == "OFF"' + when: never + - when: on_success + # CORONA corona-up-check: variables: diff --git a/scripts/gitlab/build-and-test.sh b/scripts/gitlab/build-and-test.sh index 6c93e4b6..268eccd2 100755 --- a/scripts/gitlab/build-and-test.sh +++ b/scripts/gitlab/build-and-test.sh @@ -194,7 +194,7 @@ then timed_message "Cleaning working directory" # Map CPU core allocations - declare -A core_counts=(["lassen"]=40 ["dane"]=28 ["corona"]=32 ["rzansel"]=48 ["tioga"]=32 ["tuolumne"]=48) + declare -A core_counts=(["lassen"]=40 ["dane"]=28 ["matrix"]=28 ["corona"]=32 ["rzansel"]=48 ["tioga"]=32 ["tuolumne"]=48) # If building, then delete everything first # NOTE: 'cmake --build . -j core_counts' attempts to reduce individual build resources. diff --git a/scripts/radiuss-spack-configs b/scripts/radiuss-spack-configs index b39030f6..2b1f50d1 160000 --- a/scripts/radiuss-spack-configs +++ b/scripts/radiuss-spack-configs @@ -1 +1 @@ -Subproject commit b39030f680263f6c15c7dfe510fa6ffdb9482136 +Subproject commit 2b1f50d135a497b06e29b9065fc50baf9766283c