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

  Changed paths:
    M src/root/build.tt

  Log Message:
  -----------
  Consistent capitalisation


diff --git a/src/root/build.tt b/src/root/build.tt
index ac18215..42ddc96 100644
--- a/src/root/build.tt
+++ b/src/root/build.tt
@@ -73,9 +73,9 @@
        <ul id="tab" class="nav nav-tabs">
                <li><a href="#tabs-summary" data-toggle="tab">Summary</a></li>
                <li><a href="#tabs-information" 
data-toggle="tab">Information</a></li>
-               <li><a href="#tabs-buildinputs" data-toggle="tab">Build 
Inputs</a></li>
+               <li><a href="#tabs-buildinputs" data-toggle="tab">Build 
inputs</a></li>
                [% IF relatedbuilds %]<li><a href="#tabs-relatedbuilds" 
data-toggle="tab">Related builds</a></li>[% END %]
-               [% IF build.buildsteps %]<li><a href="#tabs-buildsteps" 
data-toggle="tab">Build Steps</a></li>[% END %]
+               [% IF build.buildsteps %]<li><a href="#tabs-buildsteps" 
data-toggle="tab">Build steps</a></li>[% END %]
                 [% IF build.dependents %]<li><a href="#tabs-usedby" 
data-toggle="tab">Used by</a></li>[% END%]
                [% IF prevBuilds %]<li><a href="#tabs-history" 
data-toggle="tab">History chart</a></li>[% END %]
        </ul>


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

  Changed paths:
    M src/root/build.tt
    M src/root/queue.tt

  Log Message:
  -----------
  Only show "Running build steps" if there are running build steps


diff --git a/src/root/build.tt b/src/root/build.tt
index 42ddc96..50df3fd 100644
--- a/src/root/build.tt
+++ b/src/root/build.tt
@@ -160,9 +160,9 @@
                        
                [% END %]
 
-        [% IF !build.finished %]
+        [% IF !build.finished && build.buildsteps.size > 0 %]
             [% INCLUDE renderBuildSteps type="Running" %]
-               [% END %]
+       [% END %]
 
                [% IF build.finished %]
                        [% IF build.buildsteps && build.buildstatus != 0 && 
build.buildstatus != 6 %]
diff --git a/src/root/queue.tt b/src/root/queue.tt
index f0c5aa1..58a3d00 100644
--- a/src/root/queue.tt
+++ b/src/root/queue.tt
@@ -3,7 +3,7 @@
 
 <h1>Hydra Queue</h1>
 
-<p>[ <a href="[% c.uri_for('/status') %]">Running buildsteps</a> ]</p>
+<p>[ <a href="[% c.uri_for('/status') %]">Running build steps</a> ]</p>
 
 [% IF flashMsg %]
 <p class="error">[% flashMsg %]</p>


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

  Changed paths:
    M src/lib/Hydra/Controller/Jobset.pm

  Log Message:
  -----------
  Doh


diff --git a/src/lib/Hydra/Controller/Jobset.pm 
b/src/lib/Hydra/Controller/Jobset.pm
index 616fc5e..9f95833 100644
--- a/src/lib/Hydra/Controller/Jobset.pm
+++ b/src/lib/Hydra/Controller/Jobset.pm
@@ -366,7 +366,7 @@ sub getEvals {
         foreach my $input (@{$curInputs}) {
             my $p = $prevInputsHash{$input->name};
             push @changedInputs, $input
-                if !defined $p || $input->revision != $p->revision || 
$input->type != $p->type || $input->uri != $p->uri;
+                if !defined $p || $input->revision ne $p->revision || 
$input->type ne $p->type || $input->uri ne $p->uri;
         }
         $curInputs = $prevInputs;
         


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

  Changed paths:
    M src/lib/Hydra/Controller/Jobset.pm

  Log Message:
  -----------
  Cleanup


diff --git a/src/lib/Hydra/Controller/Jobset.pm 
b/src/lib/Hydra/Controller/Jobset.pm
index 9f95833..9b9a489 100644
--- a/src/lib/Hydra/Controller/Jobset.pm
+++ b/src/lib/Hydra/Controller/Jobset.pm
@@ -343,23 +343,15 @@ sub getEvals {
         });
 
     my @res = ();
-    my $curInputs;
-    for (my $n = 0; $n < $rows && $n < scalar @evals; $n++) {
+    my $prevInputs = [];
+    for (my $n = scalar @evals - 1; $n >= 0; $n--) {
         my $cur = $evals[$n];
         my $prev = $evals[$n + 1];
 
         # Compute what inputs changed between each eval.
-        my $diff = 0;
-        my $prevInputs = [];
-        $curInputs = [ $cur->jobsetevalinputs->search(
+        my $curInputs = [ $cur->jobsetevalinputs->search(
             { uri => { '!=' => undef }, revision => { '!=' => undef }, altNr 
=> 0 },
-            { order_by => "name" }) ] unless defined $curInputs;
-        if (defined $prev) {
-            $diff = $cur->get_column("nrSucceeded") - 
$prev->get_column("nrSucceeded");
-            $prevInputs = [ $prev->jobsetevalinputs->search(
-                { uri => { '!=' => undef }, revision => { '!=' => undef }, 
altNr => 0 },
-                { order_by => "name" }) ];
-        }
+            { order_by => "name" }) ];
         my @changedInputs;
         my %prevInputsHash;
         $prevInputsHash{$_->name} = $_ foreach @{$prevInputs};
@@ -368,12 +360,16 @@ sub getEvals {
             push @changedInputs, $input
                 if !defined $p || $input->revision ne $p->revision || 
$input->type ne $p->type || $input->uri ne $p->uri;
         }
-        $curInputs = $prevInputs;
+        $prevInputs = $curInputs;
         
-        push @res, { eval => $cur, diff => $diff, changedInputs => [ 
@changedInputs ] };
+        push @res,
+            { eval => $cur
+            , diff => defined $prev ? $cur->get_column("nrSucceeded") - 
$prev->get_column("nrSucceeded") : 0
+            , changedInputs => [ @changedInputs ]
+            };
     }
     
-    return [@res];
+    return [(reverse @res)[0..$rows - 1]];
 }
 
 


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

  Changed paths:
    M src/lib/Hydra/Controller/Jobset.pm
    M src/root/common.tt

  Log Message:
  -----------
  Speed up the jobset eval list a bit


diff --git a/src/lib/Hydra/Controller/Jobset.pm 
b/src/lib/Hydra/Controller/Jobset.pm
index 9b9a489..5b10578 100644
--- a/src/lib/Hydra/Controller/Jobset.pm
+++ b/src/lib/Hydra/Controller/Jobset.pm
@@ -330,23 +330,18 @@ sub getEvals {
     
     my @evals = $c->stash->{jobset}->jobsetevals->search(
         { hasnewbuilds => 1 }, 
-        { order_by => "id DESC"
-        , '+select' => # !!! Slow - should precompute this.
-           [ "(select count(*) from JobsetEvalMembers where eval = me.id)"
-           , "(select count(*) from JobsetEvalMembers where eval = me.id and 
exists(select 1 from Builds b where b.id = build and b.finished = 0))" 
-           , "(select count(*) from JobsetEvalMembers where eval = me.id and 
exists(select 1 from Builds b where b.id = build and b.finished = 1))"
-           , "(select count(*) from JobsetEvalMembers where eval = me.id and 
exists(select 1 from Builds b where b.id = build and b.finished = 1 and 
b.buildStatus = 0))" 
-           ]
-        , '+as' => [ "nrBuilds", "nrScheduled", "nrFinished", "nrSucceeded" ]
-        , rows => $rows + 1
-        , offset => $offset
-        });
+        { order_by => "id DESC", rows => $rows + 1, offset => $offset });
 
     my @res = ();
     my $prevInputs = [];
+    my $prev;
     for (my $n = scalar @evals - 1; $n >= 0; $n--) {
         my $cur = $evals[$n];
-        my $prev = $evals[$n + 1];
+
+        # 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;
 
         # Compute what inputs changed between each eval.
         my $curInputs = [ $cur->jobsetevalinputs->search(
@@ -361,15 +356,21 @@ sub getEvals {
                 if !defined $p || $input->revision ne $p->revision || 
$input->type ne $p->type || $input->uri ne $p->uri;
         }
         $prevInputs = $curInputs;
-        
-        push @res,
+
+        my $e = 
             { eval => $cur
-            , diff => defined $prev ? $cur->get_column("nrSucceeded") - 
$prev->get_column("nrSucceeded") : 0
+            , nrBuilds => $nrBuilds
+            , nrScheduled => $nrScheduled
+            , nrSucceeded => $nrSucceeded
+            , nrFailed => $nrBuilds - $nrSucceeded - $nrScheduled
+            , diff => defined $prev ? $nrSucceeded - $prev->{nrSucceeded} : 0
             , changedInputs => [ @changedInputs ]
             };
+        push @res, $e if $n < $rows;
+        $prev = $e;
     }
     
-    return [(reverse @res)[0..$rows - 1]];
+    return [reverse @res];
 }
 
 
diff --git a/src/root/common.tt b/src/root/common.tt
index 9345c4d..6e6a325 100644
--- a/src/root/common.tt
+++ b/src/root/common.tt
@@ -439,16 +439,16 @@
          [%- END -%]
        </td>
        <td align='right'>
-         <span class="label label-success">[% eval.get_column('nrSucceeded') 
%]</span>
-         <span class="label label-important">[% eval.get_column('nrBuilds') - 
eval.get_column('nrSucceeded') - eval.get_column('nrScheduled') %]</span>
-        [% IF eval.get_column('nrScheduled') > 0 %]
-        <span class="label">[% eval.get_column('nrScheduled') %]</span>
+         <span class="label label-success">[% e.nrSucceeded %]</span>
+         <span class="label label-important">[% e.nrFailed %]</span>
+        [% IF e.nrScheduled > 0 %]
+        <span class="label">[% e.nrScheduled %]</span>
         [% END %]
        </td>
        <td align='right'>
         [%- IF e.diff > 0 -%]
            <span class='label label-success'><strong>+[% e.diff 
%]</strong></span>
-        [%- ELSIF e.diff < 0 && eval.get_column('nrScheduled') == 0 -%]
+        [%- ELSIF e.diff < 0 && e.nrScheduled == 0 -%]
            <span class='label label-important'><strong>[% e.diff 
%]</strong></span>
         [%- END -%]
        </td>


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

  Changed paths:
    A src/sql/upgrade-7.sql

  Log Message:
  -----------
  Speed up the listing of jobset evals by caching some info in the DB

This denormalises the database, but it's the best we can do until
PostgreSQL has materialised views.


diff --git a/src/sql/upgrade-7.sql b/src/sql/upgrade-7.sql
new file mode 100644
index 0000000..419c878
--- /dev/null
+++ b/src/sql/upgrade-7.sql
@@ -0,0 +1,7 @@
+alter table JobsetEvals
+    add column nrBuilds integer,
+    add column nrSucceeded integer;
+
+update JobsetEvals e set
+    nrBuilds = (select count(*) from JobsetEvalMembers m where e.id = m.eval)
+    where hasNewBuilds = 1;


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

Reply via email to