Branch: refs/heads/master
  Home:   https://github.com/NixOS/hydra
  Commit: 0446282a6353189d0e37bb943b70f88a6fa5564b
      
https://github.com/NixOS/hydra/commit/0446282a6353189d0e37bb943b70f88a6fa5564b
  Author: Eelco Dolstra <[email protected]>
  Date:   2012-04-15 (Sun, 15 Apr 2012)

  Changed paths:
    M tests/query-all-tables.pl

  Log Message:
  -----------
  Fix the test


diff --git a/tests/query-all-tables.pl b/tests/query-all-tables.pl
index 96893ba..db8daa7 100755
--- a/tests/query-all-tables.pl
+++ b/tests/query-all-tables.pl
@@ -7,7 +7,7 @@
 my @sources = $db->schema->sources;
 my $nrtables = scalar(@sources);
 
-use Test::Simple tests => 42;
+use Test::Simple tests => 43;
 
 foreach my $source (@sources) {
   my $title = "Basic select query for $source";


================================================================
  Commit: ec87ad2bf234e4d480aa674eef9bf5b2d89f3903
      
https://github.com/NixOS/hydra/commit/ec87ad2bf234e4d480aa674eef9bf5b2d89f3903
  Author: Eelco Dolstra <[email protected]>
  Date:   2012-04-15 (Sun, 15 Apr 2012)

  Changed paths:
    M src/lib/Hydra/Controller/Jobset.pm
    M src/lib/Hydra/Schema/JobsetEvals.pm
    M src/script/hydra-evaluator
    M src/sql/hydra.sql

  Log Message:
  -----------
  Missing part of aaacf9eda36f5cdcc77cec20d6f49fbb6f925105


diff --git a/src/lib/Hydra/Controller/Jobset.pm 
b/src/lib/Hydra/Controller/Jobset.pm
index 5b10578..4dc9009 100644
--- a/src/lib/Hydra/Controller/Jobset.pm
+++ b/src/lib/Hydra/Controller/Jobset.pm
@@ -339,9 +339,17 @@ sub getEvals {
         my $cur = $evals[$n];
 
         # Get stats for this eval.
-        my $nrBuilds = $cur->jobsetevalmembers->count;
-        my $nrScheduled = $cur->builds->search({finished => 0})->count;
-        my $nrSucceeded = $cur->builds->search({finished => 1, buildStatus => 
0})->count;
+        my $nrScheduled;
+        my $nrSucceeded = $cur->nrsucceeded;
+        if (defined $nrSucceeded) {
+            $nrScheduled = 0;
+        } else {
+            $nrScheduled = $cur->builds->search({finished => 0})->count;
+            $nrSucceeded = $cur->builds->search({finished => 1, buildStatus => 
0})->count;
+            if ($nrScheduled == 0) {
+                $cur->update({nrsucceeded => $nrSucceeded});
+            }
+        }
 
         # Compute what inputs changed between each eval.
         my $curInputs = [ $cur->jobsetevalinputs->search(
@@ -359,10 +367,9 @@ sub getEvals {
 
         my $e = 
             { eval => $cur
-            , nrBuilds => $nrBuilds
             , nrScheduled => $nrScheduled
             , nrSucceeded => $nrSucceeded
-            , nrFailed => $nrBuilds - $nrSucceeded - $nrScheduled
+            , nrFailed => $cur->nrbuilds - $nrSucceeded - $nrScheduled
             , diff => defined $prev ? $nrSucceeded - $prev->{nrSucceeded} : 0
             , changedInputs => [ @changedInputs ]
             };
diff --git a/src/lib/Hydra/Schema/JobsetEvals.pm 
b/src/lib/Hydra/Schema/JobsetEvals.pm
index 3dc7452..df5fa67 100644
--- a/src/lib/Hydra/Schema/JobsetEvals.pm
+++ b/src/lib/Hydra/Schema/JobsetEvals.pm
@@ -66,6 +66,16 @@ __PACKAGE__->table("JobsetEvals");
   data_type: 'text'
   is_nullable: 0
 
+=head2 nrbuilds
+
+  data_type: 'integer'
+  is_nullable: 1
+
+=head2 nrsucceeded
+
+  data_type: 'integer'
+  is_nullable: 1
+
 =cut
 
 __PACKAGE__->add_columns(
@@ -85,6 +95,10 @@ __PACKAGE__->add_columns(
   { data_type => "integer", is_nullable => 0 },
   "hash",
   { data_type => "text", is_nullable => 0 },
+  "nrbuilds",
+  { data_type => "integer", is_nullable => 1 },
+  "nrsucceeded",
+  { data_type => "integer", is_nullable => 1 },
 );
 
 =head1 PRIMARY KEY
@@ -157,8 +171,8 @@ Related object: L<Hydra::Schema::Projects>
 __PACKAGE__->belongs_to("project", "Hydra::Schema::Projects", { name => 
"project" }, {});
 
 
-# Created by DBIx::Class::Schema::Loader v0.07014 @ 2012-04-15 16:38:10
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Yt39QbkhH52hfpJZ4ZECeg
+# Created by DBIx::Class::Schema::Loader v0.07014 @ 2012-04-15 22:30:41
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:jn81MbsAb5KZGwRpQ7qTEQ
 
 __PACKAGE__->has_many(
   "buildIds",
diff --git a/src/script/hydra-evaluator b/src/script/hydra-evaluator
index 22f34de..7e3fac6 100755
--- a/src/script/hydra-evaluator
+++ b/src/script/hydra-evaluator
@@ -165,6 +165,7 @@ sub checkJobset {
             , checkouttime => abs($checkoutStop - $checkoutStart)
             , evaltime => abs($evalStop - $evalStart)
             , hasnewbuilds => $hasNewBuilds
+            , nrbuilds => $hasNewBuilds ? scalar(keys %buildIds) : undef
             });
 
         if ($hasNewBuilds) {
diff --git a/src/sql/hydra.sql b/src/sql/hydra.sql
index 485e331..ebe2e42 100644
--- a/src/sql/hydra.sql
+++ b/src/sql/hydra.sql
@@ -438,6 +438,10 @@ create table JobsetEvals (
     -- over the command-line arguments to hydra-eval-jobs.
     hash          text not null,
 
+    -- Cached stats about the builds.
+    nrBuilds      integer,
+    nrSucceeded   integer, -- set lazily when all builds are finished
+
     foreign key   (project) references Projects(name) on delete cascade on 
update cascade,
     foreign key   (project, jobset) references Jobsets(project, name) on 
delete cascade on update cascade
 );


================================================================
Compare: https://github.com/NixOS/hydra/compare/aaacf9e...ec87ad2
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits

Reply via email to