Running builds view: show build step names
When using Hydra to build machine configurations, you'll often see "nixosConfigurations.foo" five times, i.e. for each build step being run. This isn't very helpful I think because in such a case, a single build step can also be compiling the Linux kernel. This change also fetches the `drvpath` and `type` from the `buildsteps` relation. We're already joining it, so this doesn't make much difference (confirmed via query logging that this doesn't cause extra SQL queries). Unfortunately build steps don't have a human readable name, so I'm deriving it from the drvpath by stripping away the hash (assuming that it'll never contain a `-` and that `/nix/store/` is used as prefix). I decided against using the Nix bindings for that to avoid too much overhead due to store operations for each build step.
This commit is contained in:
parent
9b465e7a67
commit
415f9f2daa
|
@ -160,7 +160,7 @@ sub status_GET {
|
||||||
{ "buildsteps.busy" => { '!=', 0 } },
|
{ "buildsteps.busy" => { '!=', 0 } },
|
||||||
{ order_by => ["globalpriority DESC", "id"],
|
{ order_by => ["globalpriority DESC", "id"],
|
||||||
join => "buildsteps",
|
join => "buildsteps",
|
||||||
columns => [@buildListColumns]
|
columns => [@buildListColumns, 'buildsteps.drvpath', 'buildsteps.type']
|
||||||
})]
|
})]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,6 +91,15 @@ BLOCK renderDuration;
|
||||||
duration % 60 %]s[%
|
duration % 60 %]s[%
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
BLOCK renderDrvInfo;
|
||||||
|
drvname = step.drvpath
|
||||||
|
.substr(11) # strip `/nix/store/`
|
||||||
|
.split('-').slice(1).join("-") # strip hash part
|
||||||
|
.substr(0, -4); # strip `.drv`
|
||||||
|
IF step.type == 0; action = "Build"; ELSE; action = "Substitution"; END;
|
||||||
|
IF drvname; %]<em> ([% action %] of [% drvname %])</em>[% END;
|
||||||
|
END;
|
||||||
|
|
||||||
|
|
||||||
BLOCK renderBuildListHeader %]
|
BLOCK renderBuildListHeader %]
|
||||||
<table class="table table-striped table-condensed clickable-rows">
|
<table class="table table-striped table-condensed clickable-rows">
|
||||||
|
@ -131,7 +140,12 @@ BLOCK renderBuildListBody;
|
||||||
[% END %]
|
[% END %]
|
||||||
<td><a class="row-link" href="[% link %]">[% build.id %]</a></td>
|
<td><a class="row-link" href="[% link %]">[% build.id %]</a></td>
|
||||||
[% IF !hideJobName %]
|
[% IF !hideJobName %]
|
||||||
<td><a href="[%link%]">[% IF !hideJobsetName %][%build.jobset.get_column("project")%]:[%build.jobset.get_column("name")%]:[% END %][%build.get_column("job")%]</td>
|
<td>
|
||||||
|
<a href="[%link%]">[% IF !hideJobsetName %][%build.jobset.get_column("project")%]:[%build.jobset.get_column("name")%]:[% END %][%build.get_column("job")%]</a>
|
||||||
|
[% IF showStepName %]
|
||||||
|
[% INCLUDE renderDrvInfo step=build.buildsteps %]
|
||||||
|
[% END %]
|
||||||
|
</td>
|
||||||
[% END %]
|
[% END %]
|
||||||
<td class="nowrap">[% t = showSchedulingInfo ? build.timestamp : build.stoptime; IF t; INCLUDE renderRelativeDate timestamp=(showSchedulingInfo ? build.timestamp : build.stoptime); ELSE; "-"; END %]</td>
|
<td class="nowrap">[% t = showSchedulingInfo ? build.timestamp : build.stoptime; IF t; INCLUDE renderRelativeDate timestamp=(showSchedulingInfo ? build.timestamp : build.stoptime); ELSE; "-"; END %]</td>
|
||||||
<td>[% !showSchedulingInfo and build.get_column('releasename') ? build.get_column('releasename') : build.nixname %]</td>
|
<td>[% !showSchedulingInfo and build.get_column('releasename') ? build.get_column('releasename') : build.nixname %]</td>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
|
|
||||||
[% INCLUDE renderBuildList builds=resource showSchedulingInfo=1 hideResultInfo=1 busy=1 %]
|
[% INCLUDE renderBuildList builds=resource showSchedulingInfo=1 hideResultInfo=1 busy=1 showStepName=1 %]
|
||||||
|
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue