11stages :
2- - prepare
32 - build_n_test
43
54variables :
65 PROJECT_NAME : singularity-eos
7- ENABLE_CDASH : false
6+ ENABLE_CDASH : true
87 GIT_SUBMODULE_STRATEGY : normal
8+ # use this variable if there is a xcap/deployment MR you want to use instead
9+ # PROJECT_SPACK_ENV_VERSION: mr/62/2024-10-15
910
1011include :
1112 - .gitlab/common.yml
1213
14+ # Spack environments are defined in
15+ # https://re-git.lanl.gov/xcap/deployment/-/tree/xcap-spack-env/systems
16+ # for each system and for each XCAP project.
17+ #
18+ # The project configuration can be found at the top of
19+ # .gitlab/build_and_test.sh.
20+ #
21+ # Each environment is uniquely identified by
22+ # ${SYSTEM_NAME}/${PROJECT_GROUP}/${PROJECT_NAME}/${SPACK_ENV_NAME}
23+ #
24+ # For creating a new custom environment for testing use the special
25+ # 'custom-spec' or 'custom-file` environments.
26+ #
27+ # The 'custom-spec` environment allows you specify an arbitrary Spack spec to
28+ # be added to a system-specific empty Spack environment. Use the SPACK_ENV_SPEC
29+ # environment variable to define the spec you want to add.
1330
14- # #######
15- # Jobs #
16- # #######
31+ # The 'custom-file` environment allows you to manually define an environment
32+ # from scratch. Use the SPACK_ENV_FILE environment variable to specify the
33+ # path to the YAML file you want to use. Note, the environment will be placed
34+ # in ${SYSTEM_NAME}/${PROJECT_GROUP}/${PROJECT_NAME}/custom-file/spack.yaml and
35+ # can therefore make relative includes to common configuration files.
1736
18- download_prereq :
19- stage : prepare
37+ prereq_offline_deps :
38+ stage : build_n_test
2039 extends : [.ascgit_job]
2140 rules :
2241 - if : $CI_PIPELINE_SOURCE == "merge_request_event"
2342 - if : $CI_PIPELINE_SOURCE == "schedule"
2443 - if : $CI_PIPELINE_SOURCE == "web"
25- - if : $CI_PIPELINE_SOURCE == "push"
44+ - if : $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
2645 needs : []
2746 variables :
2847 GIT_SUBMODULE_STRATEGY : none
@@ -34,54 +53,68 @@ download_prereq:
3453
3554openmpi_gcc :
3655 extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
37- needs : [download_prereq]
56+ needs :
57+ - prereq_offline_deps
3858 variables :
3959 SPACK_ENV_NAME : openmpi-gcc
60+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
4061
4162openmpi_fortran_gcc :
4263 extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
43- needs : [download_prereq]
64+ needs :
65+ - prereq_offline_deps
4466 variables :
4567 SPACK_ENV_NAME : openmpi-fortran-gcc
68+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
4669
4770openmpi_cuda_gcc_ampere :
4871 extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
49- needs : [download_prereq]
72+ needs :
73+ - prereq_offline_deps
5074 variables :
5175 SPACK_ENV_NAME : openmpi-cuda-gcc-ampere
5276 SCHEDULER_PARAMETERS : " -N 1 --qos=debug -p shared-gpu-ampere"
77+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
5378
5479openmpi_cuda_gcc_volta :
5580 extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
56- needs : [download_prereq]
81+ needs :
82+ - prereq_offline_deps
5783 variables :
5884 SPACK_ENV_NAME : openmpi-cuda-gcc-volta
5985 SCHEDULER_PARAMETERS : " -N 1 --qos=debug -p volta-x86 -C cpu_family:haswell"
86+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
6087
6188# currently disabled due to very long compilation times
6289# openmpi_fortran_cuda_gcc_ampere:
6390# extends: [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
64- # needs: [download_prereq]
91+ # needs:
92+ # - prereq_offline_deps
6593# variables:
6694# SPACK_ENV_NAME: openmpi-fortran-cuda-gcc-ampere
6795# SCHEDULER_PARAMETERS: "-N 1 --qos=debug -p shared-gpu-ampere"
96+ # SUBMIT_TO_CDASH: "${ENABLE_CDASH}"
6897#
6998# openmpi_fortran_cuda_gcc_volta:
7099# extends: [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
71- # needs: [download_prereq]
100+ # needs:
101+ # - prereq_offline_deps
72102# variables:
73103# SPACK_ENV_NAME: openmpi-fortran-cuda-gcc-volta
74104# SCHEDULER_PARAMETERS: "-N 1 --qos=debug -p volta-x86 -C cpu_family:haswell"
105+ # SUBMIT_TO_CDASH: "${ENABLE_CDASH}"
75106
76107# EXAMPLE of how to modify an existing Spack environment and/or set CMake options
77108# openmpi_cuda_gcc_volta_noclosure:
78109# stage: build_n_test
79110# extends: [.ascgit_job, .darwin_job, .darwin_regular_job,]
80- # needs: [download_prereq]
111+ # needs:
112+ # - prereq_offline_deps
81113# variables:
82114# SPACK_ENV_NAME: openmpi-cuda-gcc-volta
83115# SCHEDULER_PARAMETERS: "-N 1 --qos=debug -p volta-x86 -C cpu_family:haswell"
84116# SINGULARITY_EOS_SPEC: "%gcc@=12.2.0 +mpi+cuda+kokkos+spiner+hdf5+kokkos-kernels+tests~closure~fortran build_extra=sesame,stellarcollapse cuda_arch=70"
117+ # SUBMIT_TO_CDASH: "${ENABLE_CDASH}"
85118# script:
86119# - source .gitlab/build_and_test.sh --until env ${CLUSTER} ${SPACK_ENV_NAME}
87120# - spack config add "packages:singularity-eos:require:'${SINGULARITY_EOS_SPEC}'"
@@ -93,50 +126,153 @@ openmpi_cuda_gcc_volta:
93126
94127openmpi_fortran_kokkos_openmp_gcc :
95128 extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
96- needs : [download_prereq]
129+ needs :
130+ - prereq_offline_deps
97131 variables :
98132 SPACK_ENV_NAME : openmpi-fortran-kokkos-openmp-gcc
133+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
99134
100135openmpi_fortran_kokkos_static_openmp_gcc :
101136 extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
102- needs : [download_prereq]
137+ needs :
138+ - prereq_offline_deps
103139 variables :
104140 SPACK_ENV_NAME : openmpi-fortran-kokkos-static-openmp-gcc
141+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
105142
106- # openmpi_rocm_gcc:
107- # extends: [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
108- # needs: [download_prereq]
109- # variables:
110- # spack_env_name: openmpi-rocm-gcc
111- # scheduler_parameters: "-n 1 --qos=debug -p shared-gpu-amd-mi250"
112- #
113- # openmpi_fortran_rocm_gcc:
114- # extends: [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
115- # needs: [download_prereq]
116- # variables:
117- # spack_env_name: openmpi-fortran-rocm-gcc
118- # scheduler_parameters: "-n 1 --qos=debug -p shared-gpu-amd-mi250"
143+ openmpi_rocm_gcc :
144+ extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
145+ needs :
146+ - prereq_offline_deps
147+ variables :
148+ SPACK_ENV_NAME : openmpi-rocm-gcc
149+ SCHEDULER_PARAMETERS : " -n 1 --qos=debug -p shared-gpu-amd-mi250"
150+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
151+
152+ openmpi_fortran_rocm_gcc :
153+ extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
154+ needs :
155+ - prereq_offline_deps
156+ variables :
157+ SPACK_ENV_NAME : openmpi-fortran-rocm-gcc
158+ SCHEDULER_PARAMETERS : " -n 1 --qos=debug -p shared-gpu-amd-mi250"
159+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
119160
120161rocinante_craympich_gcc :
121162 extends : [.ascgit_job, .rocinante_job, .rocinante_regular_job, .build_and_test]
122- needs : [download_prereq]
163+ needs :
164+ - prereq_offline_deps
123165 variables :
124166 SPACK_ENV_NAME : craympich-gcc
167+ SUBMIT_TO_CDASH : false
168+ BUILD_WITH_CTEST : " ${ENABLE_CDASH}"
169+ SUBMIT_ON_ERROR : false # Venado nodes don't have network access, don't try to send from compute node
170+ SUBMIT_AFTER : " ${ENABLE_CDASH}" # after_script runs on a network connected system
125171
126172rocinante_craympich_fortran_gcc :
127173 extends : [.ascgit_job, .rocinante_job, .rocinante_regular_job, .build_and_test]
128- needs : [download_prereq]
174+ needs :
175+ - prereq_offline_deps
129176 variables :
130177 SPACK_ENV_NAME : craympich-fortran-gcc
178+ SUBMIT_TO_CDASH : false
179+ BUILD_WITH_CTEST : " ${ENABLE_CDASH}"
180+ SUBMIT_ON_ERROR : false # Venado nodes don't have network access, don't try to send from compute node
181+ SUBMIT_AFTER : " ${ENABLE_CDASH}" # after_script runs on a network connected system
182+
183+ rzansel_spectrummpi_cuda_volta_gcc :
184+ extends : [.ascgit_job, .rzansel_job, .rzansel_regular_job, .build_and_test]
185+ needs :
186+ - prereq_offline_deps
187+ variables :
188+ SPACK_ENV_NAME : spectrummpi-cuda-volta-gcc
189+ SUBMIT_TO_CDASH : false # disable CDash submission, since LLNL systems can't reach them
190+ BUILD_WITH_CTEST : " ${ENABLE_CDASH}" # but do build with CTest to create the necessary files
191+ SUBMIT_ON_ERROR : false # no network access, don't try to send from compute node
192+ SUBMIT_AFTER : false # submit host also doesn't have access to CDash server
193+ CREATE_SUBMIT_ARTIFACT : " ${ENABLE_CDASH}" # archive results
194+
195+ rzansel_spectrummpi_cuda_volta_xl :
196+ extends : [.ascgit_job, .rzansel_job, .rzansel_regular_job, .build_and_test]
197+ needs :
198+ - prereq_offline_deps
199+ variables :
200+ SPACK_ENV_NAME : spectrummpi-cuda-volta-xl
201+ SUBMIT_TO_CDASH : false # disable CDash submission, since LLNL systems can't reach them
202+ BUILD_WITH_CTEST : " ${ENABLE_CDASH}" # but do build with CTest to create the necessary files
203+ SUBMIT_ON_ERROR : false # no network access, don't try to send from compute node
204+ SUBMIT_AFTER : false # submit host also doesn't have access to CDash server
205+ CREATE_SUBMIT_ARTIFACT : " ${ENABLE_CDASH}" # archive results
131206
132207rzvernal_craympich_rocm_mi250_cce :
133- extends : [.ascgit_job, .rzadams_job, .rzvernal_regular_job, .build_and_test]
134- needs : [download_prereq]
208+ extends : [.ascgit_job, .rzvernal_job, .rzvernal_regular_job, .build_and_test]
209+ needs :
210+ - prereq_offline_deps
135211 variables :
136212 SPACK_ENV_NAME : craympich-rocm-gfx90a-cce
213+ SUBMIT_TO_CDASH : false # disable CDash submission, since LLNL systems can't reach them
214+ BUILD_WITH_CTEST : " ${ENABLE_CDASH}" # but do build with CTest to create the necessary files
215+ SUBMIT_ON_ERROR : false # no network access, don't try to send from compute node
216+ SUBMIT_AFTER : false # submit host also doesn't have access to CDash server
217+ CREATE_SUBMIT_ARTIFACT : " ${ENABLE_CDASH}" # archive results
137218
138219rzadams_craympich_rocm_mi300_cce :
139220 extends : [.ascgit_job, .rzadams_job, .rzadams_regular_job, .build_and_test]
140- needs : [download_prereq]
221+ needs :
222+ - prereq_offline_deps
141223 variables :
142224 SPACK_ENV_NAME : craympich-rocm-gfx942-cce
225+ SUBMIT_TO_CDASH : false # disable CDash submission, since LLNL systems can't reach them
226+ BUILD_WITH_CTEST : " ${ENABLE_CDASH}" # but do build with CTest to create the necessary files
227+ SUBMIT_ON_ERROR : false # no network access, don't try to send from compute node
228+ SUBMIT_AFTER : false # submit host also doesn't have access to CDash server
229+ CREATE_SUBMIT_ARTIFACT : " ${ENABLE_CDASH}" # archive results
230+
231+ # collect job results from RZansel and submit them to CDash
232+ post_rzansel_results_to_cdash :
233+ extends : [.post_results_to_cdash]
234+ allow_failure : true
235+ rules :
236+ - if : $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzansel/ && $GITLAB_USER_LOGIN =~ $RZANSEL_USERS && $CI_PIPELINE_SOURCE == "merge_request_event"
237+ when : always
238+ - if : $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzansel/ && $GITLAB_USER_LOGIN =~ $RZANSEL_USERS && $CI_PIPELINE_SOURCE == "schedule"
239+ when : always
240+ - if : $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzansel/ && $GITLAB_USER_LOGIN =~ $RZANSEL_USERS && $CI_PIPELINE_SOURCE == "web"
241+ when : always
242+ - if : $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzansel/ && $GITLAB_USER_LOGIN =~ $RZANSEL_USERS && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
243+ when : always
244+ needs :
245+ - rzansel_spectrummpi_cuda_volta_gcc
246+ - rzansel_spectrummpi_cuda_volta_xl
247+
248+ # collect job results from RZvernal and submit them to CDash
249+ post_rzvernal_results_to_cdash :
250+ extends : [.post_results_to_cdash]
251+ allow_failure : true
252+ rules :
253+ - if : $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzvernal/ && $GITLAB_USER_LOGIN =~ $RZVERNAL_USERS && $CI_PIPELINE_SOURCE == "merge_request_event"
254+ when : always
255+ - if : $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzvernal/ && $GITLAB_USER_LOGIN =~ $RZVERNAL_USERS && $CI_PIPELINE_SOURCE == "schedule"
256+ when : always
257+ - if : $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzvernal/ && $GITLAB_USER_LOGIN =~ $RZVERNAL_USERS && $CI_PIPELINE_SOURCE == "web"
258+ when : always
259+ - if : $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzvernal/ && $GITLAB_USER_LOGIN =~ $RZVERNAL_USERS && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
260+ when : always
261+ needs :
262+ - rzvernal_craympich_rocm_mi250_cce
263+
264+ # collect job results from RZadams and submit them to CDash
265+ post_rzadams_results_to_cdash :
266+ extends : [.post_results_to_cdash]
267+ allow_failure : true
268+ rules :
269+ - if : $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzadams/ && $GITLAB_USER_LOGIN =~ $RZADAMS_USERS && $CI_PIPELINE_SOURCE == "merge_request_event"
270+ when : always
271+ - if : $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzadams/ && $GITLAB_USER_LOGIN =~ $RZADAMS_USERS && $CI_PIPELINE_SOURCE == "schedule"
272+ when : always
273+ - if : $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzadams/ && $GITLAB_USER_LOGIN =~ $RZADAMS_USERS && $CI_PIPELINE_SOURCE == "web"
274+ when : always
275+ - if : $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzadams/ && $GITLAB_USER_LOGIN =~ $RZADAMS_USERS && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
276+ when : always
277+ needs :
278+ - rzadams_craympich_rocm_mi300_cce
0 commit comments