YFPZ46YK4BOI6VH2H3F757UEGEYONURUAEDAYEIBLRY33PLSSO4AC CXRCPDSQEWHSZNCJIORUAINH5I2FFFQ7AVUQOB62REGROLROPE7QC ZDENAYQI5DRRNUIDVKUGC45NK6C4ZFUL5FYMACTRZOCYQXPMY63QC CS2CB4EQ2XURPOEAZWVEX5QOEQB2SBBBJROGJJ4FOHEI5B3KMTXAC SAFVRDTKKD25U6VW5IVNUILLLXNQXFU72XARYC6NRVXU6MJEW2WAC OOQ2D3KCLFPYNAN253PHWLBQMB6OMO2KYQWQXLTP65SQAYZWQ5LAC JTRG7RDQXKPSO4ESGDLSVAT5WIFGKDL424MN6YYCVTKCOR2FTXRQC 3HZY24CX4U2TO74HOY4YX3LBJIYF4DLXHCIY7J2RASAC4COMSMZAC 3XTHEUMP2ZOMPQWE3S5QWHIHCEJNEXGDPQB3JUVZFPS3RFMY455QC GWCV3TQVFLUPBREUFRJV6ACJGQHD24NIUAVQQFURMXT3GL2SPPZAC J5UVLXOK6EDIL5I7VKWH4V2QDS4DPD7FHRK6XBWSXFRQS4JKXFZQC 7Z3YOKCVJE242IDO4HQVOBBLHFOXXCQIBIKDIUXQLTU5LY5QAORQC WRIU3S5EO3RB3IM5PUDNHLOOMUPD5UKWNUL4YMAKD3C6O4KELJCAC IK53RV4VGOHLCZGQCCIKPB45M3C7M7YMNBOJFBGZJ4LWIZNU4QNQC 6KCP6ODPUDLR2VLWE6LAULMYKI3TWQYEQYZRTYQ4WQX2A5RT6XRQC RWIBJ5L4MDV4XQIQXBB45RBVAK2IAK3IMP37YUX2SHW7YDKDAAXAC 7YBYT2LQML2PKEO6UO4444AGSASS664UCDXW2YO3ALB7THQHCEBQC KA45EBF5GVBBFQ2E6GSMDJ5ORSOJ7YP5EHAHLUZB226F7WNO6KYQC QUTWJR7PQZ3DBPC4G2AFXOKPPGFZQLE5RLXHAOFTLMXIT2QPF4TQC OG7BEM57MXPCG56IT5GODPFG77KZXWPXZ7OVZPWQQ56CRJ7KUE2QC AFTXA575C6JTVLVXTYJUKQGPLBO3NFORLO5XDSPHNL44HXLRH4TAC N22GPKYTOLZLBGTGDATQDVZ4R5APZEAOIA7L32X4UXBH4XNI7MWAC JK2QWPH6EOQXGCADV7C5HSYRVWC5M53LAKVN26EMTLY65IKU3AEQC 6BLUKEQ2M5RGWMPXPYIFIEVEUBV4PYAZ75S2WSBIATMRGYFMQZHQC H7CNGK4OJNRYZQGPLBGR72DULLEPFQ5UISF5J24D7IMA7SYW5LGQC X27GNHDV5KPZ5GSH6DCAJMNCEMZLCP7M43JWF2X3O5QWXMOX273AC POPU2ATH2HHBTGHKRAV3EY2K55P664IARI3YJGLDKVJ6PQPXBQ4AC 7ZHHVD6QVZCR7OHF3OIS52DF7ZIQDIS27OXCKOGMFDO2CTIOGI5AC }sub fetchInputSystemBuild {my ($db, $project, $jobset, $name, $type, $value) = @_;my ($projectName, $jobsetName, $jobName, $attrs) = parseJobName($value);$projectName ||= $project->name;$jobsetName ||= $jobset->name;my @latestBuilds = $db->resultset('LatestSucceededForJob')->search({}, {bind => [$projectName, $jobsetName, $jobName]});my @validBuilds = ();foreach my $build (@latestBuilds) {if(isValidPath($build->outpath)) {push(@validBuilds,$build);}}if (scalar(@validBuilds) == 0) {print STDERR "input `", $name, "': no previous build available\n";return undef;}my @inputs = ();foreach my $prevBuild (@validBuilds) {my $pkgNameRE = "(?:(?:[A-Za-z0-9]|(?:-[^0-9]))+)";my $versionRE = "(?:[A-Za-z0-9\.\-]+)";my $relName = ($prevBuild->resultInfo->releasename or $prevBuild->nixname);my $version = $2 if $relName =~ /^($pkgNameRE)-($versionRE)$/;my $input ={ type => "sysbuild", storePath => $prevBuild->outpath, id => $prevBuild->id, version => $version, system => $prevBuild->system};push(@inputs, $input);}return @inputs;
my @filteredJobs = ();foreach my $job (@{$jobs->{job}}) {my $validJob = 1;foreach my $arg (@{$job->{arg}}) {my $input = $inputInfo->{$arg->{name}}->[$arg->{altnr}] ;if($input->{type} eq "sysbuild" && ! ($input->{system} eq $job->{system}) ) {$validJob = 0 ;}}if($validJob) {push(@filteredJobs, $job);}}$jobs->{job} = \@filteredJobs;
my $info = fetchInput($db, $project, $jobset, $input->name, $input->type, $alt->value);push @{$$inputInfo{$input->name}}, $info if defined $info;
if($input->type eq "sysbuild") {my @info = fetchInput($db, $project, $jobset, $input->name, $input->type, $alt->value);foreach my $info_el (@info) {push @{$$inputInfo{$input->name}}, $info_el if defined $info_el;}} else {my $info = fetchInput($db, $project, $jobset, $input->name, $input->type, $alt->value);push @{$$inputInfo{$input->name}}, $info if defined $info;}