[% step.stepnr %] |
@@ -33,27 +34,35 @@
[% IF step.busy == 0;
- INCLUDE renderDuration duration = step.stoptime - step.starttime;
+ IF step.stoptime;
+ INCLUDE renderDuration duration = step.stoptime - step.starttime;
+ ELSE;
+ %]n/a[%
+ END;
ELSIF build.finished;
INCLUDE renderDuration duration = build.stoptime - step.starttime;
ELSE;
INCLUDE renderDuration duration = curTime - step.starttime;
END %]
|
- [% step.machine.split('@').1 || step.machine %] |
+ [% IF step.busy == 1 || step.status == 0 || step.status == 1 || step.status == 4 || step.status == 7; INCLUDE renderMachineName machine=step.machine; ELSE; "n/a"; END %] |
[% IF step.busy == 1 %]
Building
[% ELSIF step.status == 0 %]
Succeeded
[% ELSIF step.status == 4 %]
- Aborted
+ Aborted[% IF step.errormsg %]: [% HTML.escape(step.errormsg); END %]
[% ELSIF step.status == 7 %]
Timed out
[% ELSIF step.status == 8 %]
Cached failure
- [% ELSE %]
+ [% ELSIF step.status == 9 %]
+ Unsupported system type
+ [% ELSIF step.errormsg %]
Failed: [% HTML.escape(step.errormsg) %]
+ [% ELSE %]
+ Failed
[% END %]
[%%] [%+ IF has_log; INCLUDE renderLogLinks url=log inRow=1; END %]
[%+ IF step.propagatedfrom; %](propagated from [% INCLUDE renderBuildIdLink id=step.propagatedfrom.get_column('id') %])[% END %]
@@ -87,6 +96,7 @@
Restart
[% ELSE %]
Cancel
+ Bump up
[% END %]
[% IF available && project.releases %]
[% INCLUDE menuItem
@@ -97,7 +107,7 @@
[% END %]
-
+
Summary
[% IF isAggregate %]Constituents[% END %]
Details
@@ -178,13 +188,17 @@
| [% IF cachedBuild; INCLUDE renderFullBuildLink build=cachedBuild; ELSE %]unknown[% END %] |
[% END %]
- [% IF !isAggregate && build.finished %]
-
@@ -267,11 +281,6 @@
[% END %]
- [% IF logtext %]
- Log
- [% HTML.escape(logtext) %]
- [% END %]
-
[% IF isAggregate %]
@@ -290,7 +299,7 @@
- Queued: |
+ Queued at: |
[% INCLUDE renderDateTime timestamp = build.timestamp %] |
[% IF build.finished && !build.iscachedbuild %]
@@ -377,6 +386,25 @@
[% END %]
+
+ [% IF build.finished && build.buildmetrics %]
+ Metrics
+
+
+
+ Name | Value |
+
+
+ [% FOREACH metric IN build.buildmetrics %]
+
+ [%HTML.escape(metric.name)%] |
+ [%metric.value%][%metric.unit%] |
+
+ [% END %]
+
+
+ [% END %]
+
diff --git a/src/root/common.tt b/src/root/common.tt
index 44902431..6acea0c6 100644
--- a/src/root/common.tt
+++ b/src/root/common.tt
@@ -198,12 +198,14 @@ BLOCK renderBuildStatusIcon;
[% ELSIF buildstatus == 2 || buildstatus == 5 %]
- [% ELSIF buildstatus == 3 %]
+ [% ELSIF buildstatus == 3 || buildstatus == 9 %]
[% ELSIF buildstatus == 4 %]
[% ELSIF buildstatus == 6 %]
-
+
+ [% ELSIF buildstatus == 7 %]
+
[% ELSE %]
[% END;
@@ -228,7 +230,11 @@ BLOCK renderStatus;
[% ELSIF buildstatus == 4 %]
Cancelled by user
[% ELSIF buildstatus == 6 %]
-
Build failed (with result)
+
Build failed with output
+ [% ELSIF buildstatus == 7 %]
+
Timed out
+ [% ELSIF buildstatus == 9 %]
+
Unsupported system type
[% ELSE %]
Aborted
(Hydra failure; see
below)
@@ -566,12 +572,14 @@ BLOCK createChart %]
success: function(data) {
var ids = [];
var d = [];
- var max = 0;
+ var maxTime = 0;
+ var minTime = Number.MAX_SAFE_INTEGER;
data.forEach(function(x) {
var t = x.timestamp * 1000;
ids[t] = x.id;
d.push([t, x.value [% IF yaxis == "mib" %] / (1024.0 * 1024.0)[% END %]]);
- max = Math.max(t, max);
+ maxTime = Math.max(t, maxTime);
+ minTime = Math.min(t, minTime);
});
var options = {
@@ -634,7 +642,7 @@ BLOCK createChart %]
});
// Zoom in to the last two months by default.
- plot.setSelection({ xaxis: { from: max - 60 * 24 * 60 * 60 * 1000, to: max } });
+ plot.setSelection({ xaxis: { from: Math.max(minTime, maxTime - 60 * 24 * 60 * 60 * 1000), to: maxTime } });
}
});
});
@@ -643,4 +651,9 @@ BLOCK createChart %]
[% END;
+BLOCK renderMachineName;
+machine ? stripSSHUser(machine).match('^(([^\.]|\.[0-9])*)').0 : "localhost";
+END;
+
+
%]
diff --git a/src/root/job.tt b/src/root/job.tt
index 998bc083..a9e1ca77 100644
--- a/src/root/job.tt
+++ b/src/root/job.tt
@@ -98,6 +98,14 @@ removed or had an evaluation error.
[% INCLUDE createChart id="output-size" yaxis="mib" dataUrl=c.uri_for('/job' project.name jobset.name job.name 'output-sizes') %]
+ [% FOREACH metric IN metrics %]
+
+ Metric: [%HTML.escape(metric.name)%]
+
+ [% INCLUDE createChart id="metric-${metric.name}" dataUrl=c.uri_for('/job' project.name jobset.name job.name 'metric' metric.name) %]
+
+ [% END %]
+
diff --git a/src/root/jobset-eval.tt b/src/root/jobset-eval.tt
index 48b44e87..3a090a77 100644
--- a/src/root/jobset-eval.tt
+++ b/src/root/jobset-eval.tt
@@ -47,8 +47,15 @@ c.uri_for(c.controller('JobsetEval').action_for('view'),
[% END %]
diff --git a/src/root/jobset.tt b/src/root/jobset.tt
index e07cbb6e..63ef29b9 100644
--- a/src/root/jobset.tt
+++ b/src/root/jobset.tt
@@ -51,7 +51,7 @@
diff --git a/src/root/layout.tt b/src/root/layout.tt
index daa65b6d..cf221cd1 100644
--- a/src/root/layout.tt
+++ b/src/root/layout.tt
@@ -117,7 +117,7 @@
- [% ELSE %]
+ [% ELSIF personaEnabled %]