spack/lib/spack
Jonathon Anderson 10491e98a8
CI: allow multiple matches to combine tags (#32290)
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.
2022-10-15 17:29:53 +00:00
..
docs depfile: update docs (#33279) 2022-10-15 06:10:05 +02:00
env Revert "strip -Werror: all specific or none (#30284)" (#30878) 2022-05-26 14:17:01 -07:00
external Use threading.TIMEOUT_MAX when available (#32399) 2022-08-26 17:37:56 -06:00
llnl shell prompt: enclose control sequence in brackets (#33079) 2022-10-10 07:29:58 -06:00
spack CI: allow multiple matches to combine tags (#32290) 2022-10-15 17:29:53 +00:00