forked from lix-project/hydra
Fix non-static declarative jobsets
With the current implementation, if ANY hash was found inside the decl spec, the spec would be treated as static. This is problematic since `inputs` is a hash and hence any configuration would be handled as a static one. This fixes the code to match the documentation and only switch to static processing when ALL values are hashes.
This commit is contained in:
parent
b5d7ed2e99
commit
24acb9d6bb
|
@ -573,7 +573,14 @@ sub checkJobsetWrapped {
|
||||||
die "Declarative specification file $declFile not valid JSON: $@\n" if $@;
|
die "Declarative specification file $declFile not valid JSON: $@\n" if $@;
|
||||||
|
|
||||||
if (ref $declSpec eq "HASH") {
|
if (ref $declSpec eq "HASH") {
|
||||||
if (grep ref $_ eq "HASH", values %$declSpec) {
|
my $isStatic = 1;
|
||||||
|
foreach my $elem (values %$declSpec) {
|
||||||
|
if (ref $elem ne "HASH") {
|
||||||
|
$isStatic = 0;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($isStatic) {
|
||||||
# Since all of its keys are hashes, assume the json document
|
# Since all of its keys are hashes, assume the json document
|
||||||
# itself is the entire set of jobs
|
# itself is the entire set of jobs
|
||||||
handleDeclarativeJobsetJson($db, $project, $declSpec);
|
handleDeclarativeJobsetJson($db, $project, $declSpec);
|
||||||
|
|
Loading…
Reference in a new issue