1
1
stages :
2
- - prepare
3
2
- build_n_test
4
3
5
4
variables :
6
5
PROJECT_NAME : singularity-eos
7
- ENABLE_CDASH : false
6
+ ENABLE_CDASH : true
8
7
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
9
10
10
11
include :
11
12
- .gitlab/common.yml
12
13
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.
13
30
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.
17
36
18
- download_prereq :
19
- stage : prepare
37
+ prereq_offline_deps :
38
+ stage : build_n_test
20
39
extends : [.ascgit_job]
21
40
rules :
22
41
- if : $CI_PIPELINE_SOURCE == "merge_request_event"
23
42
- if : $CI_PIPELINE_SOURCE == "schedule"
24
43
- if : $CI_PIPELINE_SOURCE == "web"
25
- - if : $CI_PIPELINE_SOURCE == "push"
44
+ - if : $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
26
45
needs : []
27
46
variables :
28
47
GIT_SUBMODULE_STRATEGY : none
@@ -34,54 +53,68 @@ download_prereq:
34
53
35
54
openmpi_gcc :
36
55
extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
37
- needs : [download_prereq]
56
+ needs :
57
+ - prereq_offline_deps
38
58
variables :
39
59
SPACK_ENV_NAME : openmpi-gcc
60
+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
40
61
41
62
openmpi_fortran_gcc :
42
63
extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
43
- needs : [download_prereq]
64
+ needs :
65
+ - prereq_offline_deps
44
66
variables :
45
67
SPACK_ENV_NAME : openmpi-fortran-gcc
68
+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
46
69
47
70
openmpi_cuda_gcc_ampere :
48
71
extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
49
- needs : [download_prereq]
72
+ needs :
73
+ - prereq_offline_deps
50
74
variables :
51
75
SPACK_ENV_NAME : openmpi-cuda-gcc-ampere
52
76
SCHEDULER_PARAMETERS : " -N 1 --qos=debug -p shared-gpu-ampere"
77
+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
53
78
54
79
openmpi_cuda_gcc_volta :
55
80
extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
56
- needs : [download_prereq]
81
+ needs :
82
+ - prereq_offline_deps
57
83
variables :
58
84
SPACK_ENV_NAME : openmpi-cuda-gcc-volta
59
85
SCHEDULER_PARAMETERS : " -N 1 --qos=debug -p volta-x86 -C cpu_family:haswell"
86
+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
60
87
61
88
# currently disabled due to very long compilation times
62
89
# openmpi_fortran_cuda_gcc_ampere:
63
90
# extends: [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
64
- # needs: [download_prereq]
91
+ # needs:
92
+ # - prereq_offline_deps
65
93
# variables:
66
94
# SPACK_ENV_NAME: openmpi-fortran-cuda-gcc-ampere
67
95
# SCHEDULER_PARAMETERS: "-N 1 --qos=debug -p shared-gpu-ampere"
96
+ # SUBMIT_TO_CDASH: "${ENABLE_CDASH}"
68
97
#
69
98
# openmpi_fortran_cuda_gcc_volta:
70
99
# extends: [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
71
- # needs: [download_prereq]
100
+ # needs:
101
+ # - prereq_offline_deps
72
102
# variables:
73
103
# SPACK_ENV_NAME: openmpi-fortran-cuda-gcc-volta
74
104
# SCHEDULER_PARAMETERS: "-N 1 --qos=debug -p volta-x86 -C cpu_family:haswell"
105
+ # SUBMIT_TO_CDASH: "${ENABLE_CDASH}"
75
106
76
107
# EXAMPLE of how to modify an existing Spack environment and/or set CMake options
77
108
# openmpi_cuda_gcc_volta_noclosure:
78
109
# stage: build_n_test
79
110
# extends: [.ascgit_job, .darwin_job, .darwin_regular_job,]
80
- # needs: [download_prereq]
111
+ # needs:
112
+ # - prereq_offline_deps
81
113
# variables:
82
114
# SPACK_ENV_NAME: openmpi-cuda-gcc-volta
83
115
# SCHEDULER_PARAMETERS: "-N 1 --qos=debug -p volta-x86 -C cpu_family:haswell"
84
116
# 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}"
85
118
# script:
86
119
# - source .gitlab/build_and_test.sh --until env ${CLUSTER} ${SPACK_ENV_NAME}
87
120
# - spack config add "packages:singularity-eos:require:'${SINGULARITY_EOS_SPEC}'"
@@ -93,50 +126,153 @@ openmpi_cuda_gcc_volta:
93
126
94
127
openmpi_fortran_kokkos_openmp_gcc :
95
128
extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
96
- needs : [download_prereq]
129
+ needs :
130
+ - prereq_offline_deps
97
131
variables :
98
132
SPACK_ENV_NAME : openmpi-fortran-kokkos-openmp-gcc
133
+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
99
134
100
135
openmpi_fortran_kokkos_static_openmp_gcc :
101
136
extends : [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
102
- needs : [download_prereq]
137
+ needs :
138
+ - prereq_offline_deps
103
139
variables :
104
140
SPACK_ENV_NAME : openmpi-fortran-kokkos-static-openmp-gcc
141
+ SUBMIT_TO_CDASH : " ${ENABLE_CDASH}"
105
142
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}"
119
160
120
161
rocinante_craympich_gcc :
121
162
extends : [.ascgit_job, .rocinante_job, .rocinante_regular_job, .build_and_test]
122
- needs : [download_prereq]
163
+ needs :
164
+ - prereq_offline_deps
123
165
variables :
124
166
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
125
171
126
172
rocinante_craympich_fortran_gcc :
127
173
extends : [.ascgit_job, .rocinante_job, .rocinante_regular_job, .build_and_test]
128
- needs : [download_prereq]
174
+ needs :
175
+ - prereq_offline_deps
129
176
variables :
130
177
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
131
206
132
207
rzvernal_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
135
211
variables :
136
212
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
137
218
138
219
rzadams_craympich_rocm_mi300_cce :
139
220
extends : [.ascgit_job, .rzadams_job, .rzadams_regular_job, .build_and_test]
140
- needs : [download_prereq]
221
+ needs :
222
+ - prereq_offline_deps
141
223
variables :
142
224
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