* hydra: added variant of build input type, 'build output (same system)' to allow better continous integration in one jobset for multiple system. it makes sure that the system of the build that is passed as input for a job has the same system as the job.
[?]
Jan 19, 2010, 2:15 PM
YFPZ46YK4BOI6VH2H3F757UEGEYONURUAEDAYEIBLRY33PLSSO4ACDependencies
- [2]
CXRCPDSQ* added support for twitter notification - [3]
ZDENAYQI* email notification of evaluation errors to project owner (if desired) - [4]
CS2CB4EQfix for clone build with build as input - [5]
IK53RV4V - [6]
POPU2ATH* hydra_scheduler: use eval-jobs. - [7]
TULPZ62Y* Perform builds in parallel. - [8]
ODNCGFQ5* Improved the navigation bar: don't include all projects (since that - [9]
OG7BEM57 - [10]
KA45EBF5* Send email if a build fails. - [11]
H7CNGK4O* Log evaluation errors etc. in the DB. - [12]
3E6IP3R3* Add the name of the jobset to ReleaseSetJobs, otherwise we can't - [13]
OOQ2D3KC* Refactoring: move fetchInput out of hydra_scheduler into a separate - [14]
3XTHEUMP* Implemented the clone feature. - [15]
JTRG7RDQadd support for git as jobinput - [16]
ABEOQU7T - [17]
6BLUKEQ2* Caching of "path" inputs, and fake a revision number for those. - [18]
7Z3YOKCV* PROCESS -> INCLUDE in most cases. INCLUDE does proper scoping of - [19]
N22GPKYT* Put info about logs / build products in the DB. - [20]
S5PV6IIM* Represent jobs explicitly in the DB. - [21]
5SHCWE7X* Prevent repeated evaluation of a jobset with the same inputs. This - [22]
UMBR3VG3 - [23]
7ZHHVD6Q* Inputs of type "build" must now be declared explicitly. - [24]
RWIBJ5L4* Autoflush stdout. - [25]
ZDNXMJ3J* Typo. - [26]
AFTXA575* $HYDRA_DATA environment variable. - [27]
X27GNHDV* Basic job info in the database. - [28]
67P45PY4 - [29]
7YBYT2LQ - [30]
JK2QWPH6 - [31]
YAPITGB3* Boolean inputs. - [32]
QUTWJR7P* Include more info in notification emails. - [33]
GWCV3TQV* BuildInputs table: link to dependencies, include store paths. - [34]
WRIU3S5E* UI for cloning builds (not functional yet). - [35]
BVOPAMLS - [36]
BOFOHCPKremoved debug print, added last 50 lines in failure emails - [37]
6KCP6ODP* Get the URI for use in notification mails from the Hydra config - [*]
SAFVRDTK* Put Hydra's dependencies so that they can easily be installed in a - [*]
3HZY24CX* Make jobsets viewable under - [*]
J5UVLXOK* Start of a basic Catalyst web interface.
Change contents
- edit in deps.nix at line 22
perlPackages.PadWalkerperlPackages.DataDump - replacement in src/lib/Hydra/Controller/Jobset.pm at line 123
$inputType eq "git" || $inputType eq "build";$inputType eq "git" || $inputType eq "build" || $inputType eq "sysbuild" ; - edit in src/lib/Hydra/Helper/AddBuilds.pm at line 216
}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; - edit in src/lib/Hydra/Helper/AddBuilds.pm at line 362
}elsif ($type eq "sysbuild") {return fetchInputSystemBuild($db, $project, $jobset, $name, $type, $value); - replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 399
when (["svn", "path", "build", "git", "cvs"]) {when (["svn", "path", "build", "git", "cvs", "sysbuild"]) { - edit in src/lib/Hydra/Helper/AddBuilds.pm at line 445
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; - replacement in src/root/build.tt at line 258
[% IF input.type == "build" %][% IF input.type == "build" || input.type == "sysbuild" %] - replacement in src/root/clone-build.tt at line 37
[% IF input.type == "build" %][% IF input.type == "build" || input.type == "sysbuild" %] - edit in src/root/common.tt at line 14
, "sysbuild" = "Build output (same system)" - replacement in src/script/hydra_build.pl at line 17[5.21]→[5.0:1](∅→∅),[5.25]→[5.0:1](∅→∅),[2.55]→[5.0:1](∅→∅),[5.69]→[5.0:1](∅→∅),[5.399]→[5.0:1](∅→∅),[5.1070]→[5.0:1](∅→∅)
use Data::Dump qw(dump); - replacement in src/script/hydra_build.pl at line 141
, $input->type eq "build", ( $input->type eq "build" || $input->type eq "sysbuild") - replacement in src/script/hydra_scheduler.pl at line 16[5.48]→[5.1392:1393](∅→∅),[3.417]→[5.1392:1393](∅→∅),[5.492]→[5.1392:1393](∅→∅),[5.1597]→[5.1392:1393](∅→∅),[5.1994]→[5.1392:1393](∅→∅),[5.5673]→[5.1392:1393](∅→∅),[5.1392]→[5.1392:1393](∅→∅)
use Data::Dump qw(dump); - replacement in src/script/hydra_scheduler.pl at line 27
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;}