forked from lix-project/hydra
This commit is contained in:
parent
80a2350a0a
commit
356b77bb95
|
@ -139,6 +139,8 @@ sub nixlog :Local {
|
||||||
|
|
||||||
my $step = $build->buildsteps->find({stepnr => $stepnr});
|
my $step = $build->buildsteps->find({stepnr => $stepnr});
|
||||||
return error($c, "Build $id doesn't have a build step $stepnr.") if !defined $step;
|
return error($c, "Build $id doesn't have a build step $stepnr.") if !defined $step;
|
||||||
|
|
||||||
|
return error($c, "Build step $stepnr of build $id does not have a log file.") if $step->logfile eq "";
|
||||||
|
|
||||||
$c->stash->{template} = 'log.tt';
|
$c->stash->{template} = 'log.tt';
|
||||||
$c->stash->{id} = $id;
|
$c->stash->{id} = $id;
|
||||||
|
|
|
@ -147,7 +147,11 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>[% step.stepnr %]</td>
|
<td>[% step.stepnr %]</td>
|
||||||
<td>
|
<td>
|
||||||
Build of <tt>[% step.outpath %]</tt>
|
[% IF step.type == 0 %]
|
||||||
|
Build of <tt>[% step.outpath %]</tt>
|
||||||
|
[% ELSE %]
|
||||||
|
Substitution of <tt>[% step.outpath %]</tt>
|
||||||
|
[% END %]
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
[% IF step.busy == 0 %]
|
[% IF step.busy == 0 %]
|
||||||
|
@ -164,7 +168,9 @@
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
<strong class="error-msg">Failed: [% step.errormsg %]</strong>
|
<strong class="error-msg">Failed: [% step.errormsg %]</strong>
|
||||||
[% END %]
|
[% END %]
|
||||||
(<a href="[% c.uri_for('/nixlog' build.id step.stepnr) %]">log</a>)
|
[% IF step.logfile %]
|
||||||
|
(<a href="[% c.uri_for('/nixlog' build.id step.stepnr) %]">log</a>)
|
||||||
|
[% END %]
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
54
src/build.pl
54
src/build.pl
|
@ -47,7 +47,6 @@ sub doBuild {
|
||||||
print STDERR "$_";
|
print STDERR "$_";
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
print STDERR "GOT $_";
|
|
||||||
|
|
||||||
if (/^@\s+build-started\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)$/) {
|
if (/^@\s+build-started\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)$/) {
|
||||||
$db->txn_do(sub {
|
$db->txn_do(sub {
|
||||||
|
@ -64,9 +63,9 @@ sub doBuild {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (/^@\s+build-succeeded\s+(\S+)\s+(\S+)$/) {
|
elsif (/^@\s+build-succeeded\s+(\S+)\s+(\S+)$/) {
|
||||||
|
my $drvPath = $1;
|
||||||
$db->txn_do(sub {
|
$db->txn_do(sub {
|
||||||
my $drvPath = $1;
|
|
||||||
(my $step) = $db->resultset('Buildsteps')->search(
|
(my $step) = $db->resultset('Buildsteps')->search(
|
||||||
{id => $build->id, type => 0, drvpath => $drvPath}, {});
|
{id => $build->id, type => 0, drvpath => $drvPath}, {});
|
||||||
die unless $step;
|
die unless $step;
|
||||||
|
@ -77,9 +76,9 @@ sub doBuild {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (/^@\s+build-failed\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*)$/) {
|
elsif (/^@\s+build-failed\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*)$/) {
|
||||||
|
my $drvPath = $1;
|
||||||
$db->txn_do(sub {
|
$db->txn_do(sub {
|
||||||
my $drvPath = $1;
|
|
||||||
(my $step) = $db->resultset('Buildsteps')->search(
|
(my $step) = $db->resultset('Buildsteps')->search(
|
||||||
{id => $build->id, type => 0, drvpath => $drvPath}, {});
|
{id => $build->id, type => 0, drvpath => $drvPath}, {});
|
||||||
if ($step) {
|
if ($step) {
|
||||||
|
@ -106,6 +105,51 @@ sub doBuild {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
elsif (/^@\s+substituter-started\s+(\S+)\s+(\S+)$/) {
|
||||||
|
my $outPath = $1;
|
||||||
|
$db->txn_do(sub {
|
||||||
|
$db->resultset('Buildsteps')->create(
|
||||||
|
{ id => $build->id
|
||||||
|
, stepnr => $buildStepNr++
|
||||||
|
, type => 1 # = substitution
|
||||||
|
, outpath => $1
|
||||||
|
, busy => 1
|
||||||
|
, starttime => time
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
elsif (/^@\s+substituter-succeeded\s+(\S+)$/) {
|
||||||
|
my $outPath = $1;
|
||||||
|
$db->txn_do(sub {
|
||||||
|
(my $step) = $db->resultset('Buildsteps')->search(
|
||||||
|
{id => $build->id, type => 1, outpath => $outPath}, {});
|
||||||
|
die unless $step;
|
||||||
|
$step->busy(0);
|
||||||
|
$step->status(0);
|
||||||
|
$step->stoptime(time);
|
||||||
|
$step->update;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
elsif (/^@\s+substituter-failed\s+(\S+)\s+(\S+)\s+(\S+)$/) {
|
||||||
|
my $outPath = $1;
|
||||||
|
$db->txn_do(sub {
|
||||||
|
(my $step) = $db->resultset('Buildsteps')->search(
|
||||||
|
{id => $build->id, type => 1, outpath => $outPath}, {});
|
||||||
|
die unless $step;
|
||||||
|
$step->busy(0);
|
||||||
|
$step->status(1);
|
||||||
|
$step->errormsg($3);
|
||||||
|
$step->stoptime(time);
|
||||||
|
$step->update;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
print STDERR "unknown Nix trace message: $_";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
close OUT;
|
close OUT;
|
||||||
|
|
Loading…
Reference in a new issue