forked from lix-project/hydra
* hydra: add dependency list with links to logfiles
This commit is contained in:
parent
7315480acd
commit
b615135825
|
@ -7,7 +7,7 @@ use Hydra::Helper::Nix;
|
||||||
use Hydra::Helper::CatalystUtils;
|
use Hydra::Helper::CatalystUtils;
|
||||||
use Hydra::Helper::AddBuilds;
|
use Hydra::Helper::AddBuilds;
|
||||||
use File::stat;
|
use File::stat;
|
||||||
|
use Data::Dump qw(dump);
|
||||||
|
|
||||||
sub build : Chained('/') PathPart CaptureArgs(1) {
|
sub build : Chained('/') PathPart CaptureArgs(1) {
|
||||||
my ($self, $c, $id) = @_;
|
my ($self, $c, $id) = @_;
|
||||||
|
@ -253,6 +253,45 @@ sub buildtimedeps : Chained('build') PathPart('buildtime-deps') {
|
||||||
$c->res->content_type('image/png'); # !!!
|
$c->res->content_type('image/png'); # !!!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub deps : Chained('build') PathPart('deps') {
|
||||||
|
my ($self, $c) = @_;
|
||||||
|
|
||||||
|
my $build = $c->stash->{build};
|
||||||
|
$c->stash->{available} = isValidPath $build->outpath;
|
||||||
|
$c->stash->{drvAvailable} = isValidPath $build->drvpath;
|
||||||
|
|
||||||
|
my $drvpath = $build->drvpath;
|
||||||
|
my $outpath = $build->outpath;
|
||||||
|
|
||||||
|
my @buildtimepaths = ();
|
||||||
|
my @buildtimedeps = ();
|
||||||
|
@buildtimepaths = split '\n', `nix-store --query --requisites --include-outputs $drvpath` if isValidPath($build->drvpath);
|
||||||
|
|
||||||
|
my @runtimepaths = ();
|
||||||
|
my @runtimedeps = ();
|
||||||
|
@runtimepaths = split '\n', `nix-store --query --requisites --include-outputs $outpath` if isValidPath($build->outpath);
|
||||||
|
|
||||||
|
foreach my $p (@buildtimepaths) {
|
||||||
|
my $buildStep;
|
||||||
|
($buildStep) = $c->model('DB::BuildSteps')->search({ outpath => $p }, {}) ;
|
||||||
|
my %dep = ( buildstep => $buildStep, path => $p ) ;
|
||||||
|
push(@buildtimedeps, \%dep);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach my $p (@runtimepaths) {
|
||||||
|
my $buildStep;
|
||||||
|
($buildStep) = $c->model('DB::BuildSteps')->search({ outpath => $p }, {}) ;
|
||||||
|
my %dep = ( buildstep => $buildStep, path => $p ) ;
|
||||||
|
push(@runtimedeps, \%dep);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$c->stash->{buildtimedeps} = \@buildtimedeps;
|
||||||
|
$c->stash->{runtimedeps} = \@runtimedeps;
|
||||||
|
|
||||||
|
$c->stash->{template} = 'deps.tt';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
sub nix : Chained('build') PathPart('nix') CaptureArgs(0) {
|
sub nix : Chained('build') PathPart('nix') CaptureArgs(0) {
|
||||||
my ($self, $c) = @_;
|
my ($self, $c) = @_;
|
||||||
|
|
|
@ -132,7 +132,7 @@
|
||||||
<td>
|
<td>
|
||||||
<tt>[% build.drvpath %]</tt>
|
<tt>[% build.drvpath %]</tt>
|
||||||
[% IF drvAvailable %]
|
[% IF drvAvailable %]
|
||||||
(<a href="[% c.uri_for('/build' build.id 'buildtime-deps') %]">build-time dependencies</a>)
|
(build-time dependencies: <a href="[% c.uri_for('/build' build.id 'buildtime-deps') %]">graph</a> | <a href="[% c.uri_for('/build' build.id 'deps') %]#buildtime">list</a>)
|
||||||
[% END %]
|
[% END %]
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
<td>
|
<td>
|
||||||
<tt>[% build.outpath %]</tt>
|
<tt>[% build.outpath %]</tt>
|
||||||
[% IF available %]
|
[% IF available %]
|
||||||
(<a href="[% c.uri_for('/build' build.id 'runtime-deps') %]">runtime dependencies</a>)
|
(runtime dependencies: <a href="[% c.uri_for('/build' build.id 'runtime-deps') %]">graph</a> | <a href="[% c.uri_for('/build' build.id 'deps') %]#runtime">list</a>)
|
||||||
[% END %]
|
[% END %]
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
46
src/root/deps.tt
Normal file
46
src/root/deps.tt
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
[% WRAPPER layout.tt title="Job ‘$project.name:$jobset.name:$job.name’ build $id" %]
|
||||||
|
[% PROCESS common.tt %]
|
||||||
|
[% USE HTML %]
|
||||||
|
|
||||||
|
[% project = build.project %]
|
||||||
|
[% jobset = build.jobset %]
|
||||||
|
[% job = build.job %]
|
||||||
|
|
||||||
|
<a name="runtime"></a>
|
||||||
|
[% IF available %]
|
||||||
|
<h1>Runtime dependencies for [% build.outpath %]</h1>
|
||||||
|
<ul>
|
||||||
|
[% FOREACH dep IN runtimedeps -%]
|
||||||
|
<li>
|
||||||
|
[% IF dep.buildstep %]
|
||||||
|
<a href="[% c.uri_for('/build' dep.buildstep.get_column('build') 'nixlog' dep.buildstep.stepnr) %]">[% dep.path %]</a>
|
||||||
|
[% ELSE %]
|
||||||
|
[% dep.path %]
|
||||||
|
[% END %]
|
||||||
|
</li>
|
||||||
|
[% END %]
|
||||||
|
</ul>
|
||||||
|
[% ELSE %]
|
||||||
|
Path not available anymore!<br />
|
||||||
|
[% END %]
|
||||||
|
|
||||||
|
<a name="buildtime"></a>
|
||||||
|
[% IF drvAvailable %]
|
||||||
|
<h1>Build time dependencies for [% build.drvpath %]</h1>
|
||||||
|
<ul>
|
||||||
|
[% FOREACH dep IN buildtimedeps -%]
|
||||||
|
<li>
|
||||||
|
[% IF dep.buildstep %]
|
||||||
|
<a href="[% c.uri_for('/build' dep.buildstep.get_column('build') 'nixlog' dep.buildstep.stepnr) %]">[% dep.path %]</a>
|
||||||
|
[% ELSE %]
|
||||||
|
[% dep.path %]
|
||||||
|
[% END %]
|
||||||
|
</li>
|
||||||
|
[% END %]
|
||||||
|
</ul>
|
||||||
|
[% ELSE %]
|
||||||
|
Derivation not available anymore!<br />
|
||||||
|
[% END %]
|
||||||
|
|
||||||
|
[% END %]
|
||||||
|
|
Loading…
Reference in a new issue