10491e98a8
Currently "spack ci generate" chooses the first matching entry in gitlab-ci:mappings to fill attributes for a generated build-job, requiring that the entire configuration matrix is listed out explicitly. This unfortunately causes significant problems in environments with large configuration spaces, for example the environment in #31598 (spack.yaml) supports 5 operating systems, 3 architectures and 130 packages with explicit size requirements, resulting in 1300 lines of configuration YAML. This patch adds a configuraiton option to the gitlab-ci schema called "match_behavior"; when it is set to "merge", all matching entries are applied in order to the final build-job, allowing a few entries to cover an entire matrix of configurations. The default for "match_behavior" is "first", which behaves as before this commit (only the runner attributes of the first match are used). In addition, match entries may now include a "remove-attributes" configuration, which allows matches to remove tags that have been aggregated by prior matches. This only makes sense to use with "match_behavior:merge". You can combine "runner-attributes" with "remove-attributes" to effectively override prior tags. |
||
---|---|---|
.. | ||
bash | ||
bootstrap | ||
csh | ||
docker | ||
docs/docker/module-file-tutorial | ||
gitlab | ||
keys | ||
logo | ||
qa | ||
templates | ||
setup-env.csh | ||
setup-env.fish | ||
setup-env.ps1 | ||
setup-env.sh | ||
setup-tutorial-env.sh | ||
spack-completion.bash |