* Put actions related to builds under /build (e.g. /log/<buildid>
[?]
Feb 25, 2009, 10:52 AM
SMM4HQTPAY45254O7GQOJVLHP5LZ6BXDKGNE7IKUJHB5XKH244ZACDependencies
- [2]
6JGCGK5X - [3]
L7LFU6IQ* Make build steps clickable as well. - [4]
IW6XNRL7 - [5]
WZ3AEJ67* hydra_update_gc_roots.pl registers build outputs that should be kept - [6]
Y35C6GHH* One-click installs. - [7]
AS5PAYLI - [8]
JFZNAYJX* Showing releases. - [9]
NYC3LZKH* Generate NAR archives on the fly. Necessary for producing channels - [10]
CLJQCY2X* Store info about all the build actions and allow them to be - [11]
UAPS46BQ - [12]
A4ZMBK7D* Icon for ISOs. - [13]
IWVA2P2Y* Generate manifests on demand. Next step: generate NAR archives on - [14]
L2E6EVE2* Merged the Build and Job tables. - [15]
BD3GRK4B* Get rid of "positive failures" and separate log phases. - [16]
VVDQKVNL - [17]
MOCEUXZA* Support serving products that are directories (such as manuals or - [18]
2GK5DOU7* Downloading closures. - [19]
JLDUSNUO* Unify rendering of finished and scheduled builds. - [20]
HK32XC42 - [21]
GCHNNFZP - [22]
L5VIEXSC* Allow downloading of build products. - [23]
CMU3YKOU* Store the release name. - [24]
BA46C5LN* Pretty-print the logs. - [25]
M3WSK4CB - [26]
UHANDRAR* Closure downloads: don't include the product number; it's not needed. - [27]
WHAFVCEI - [28]
ELCI5T2A* Show the latest build for each job. - [29]
2AUODJBT - [30]
LQNBKF3D - [31]
J5UVLXOK* Start of a basic Catalyst web interface. - [32]
JD27RBKM - [33]
SHBLLAVH* More global substitution.
Change contents
- replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 8
## Sets the actions in this controller to be registered with no prefix# so they function identically to actions created in MyApp.pm## Put this controller at top-level. - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 27
$c->stash->{template} = 'error.tt';$c->stash->{error} = $msg;$c->response->status(404);$c->error($msg);$c->detach; - edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 572
$c->response->status(404); - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 576
sub build :Local {sub build : Chained('/') PathPart CaptureArgs(1) { - edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 578
$c->stash->{id} = $id;$c->stash->{build} = getBuild($c, $id);if (!defined $c->stash->{build}) {error($c, "Build with ID $id doesn't exist.");$c->response->status(404);return;} - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 589
my $build = getBuild($c, $id);return error($c, "Build with ID $id doesn't exist.") if !defined $build;$c->stash->{curProject} = $c->stash->{build}->project;} - edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 592
$c->stash->{curProject} = $build->project; - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 593
$c->stash->{template} = 'build.tt';$c->stash->{build} = $build;$c->stash->{id} = $id;sub view_build : Chained('build') PathPart('') Args(0) {my ($self, $c) = @_; - edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 596
my $build = $c->stash->{build};$c->stash->{template} = 'build.tt'; - edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 600
- replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 609
sub log :Local {my ($self, $c, $id) = @_;sub view_nixlog : Chained('build') PathPart('nixlog') Args(1) {my ($self, $c, $stepnr) = @_; - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 612[7.1930]→[7.1930:1965](∅→∅),[7.1965]→[7.33:102](∅→∅),[7.102]→[7.2042:2043](∅→∅),[7.2042]→[7.2042:2043](∅→∅),[7.2043]→[7.103:200](∅→∅)
my $build = getBuild($c, $id);return error($c, "Build $id doesn't exist.") if !defined $build;return error($c, "Build $id didn't produce a log.") if !defined $build->resultInfo->logfile;my $step = $c->stash->{build}->buildsteps->find({stepnr => $stepnr});return error($c, "Build doesn't have a build step $stepnr.") if !defined $step; - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 616
$c->stash->{build} = $build;$c->stash->{step} = $step; - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 619
$c->stash->{logtext} = loadLog($c, $build->resultInfo->logfile);$c->stash->{logtext} = loadLog($c, $step->logfile); - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 623
sub nixlog :Local {my ($self, $c, $id, $stepnr) = @_;my $build = getBuild($c, $id);return error($c, "Build with ID $id doesn't exist.") if !defined $build;sub view_log : Chained('build') PathPart('log') Args(0) {my ($self, $c) = @_; - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 626
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 didn't produce a log.") if !defined $c->stash->{build}->resultInfo->logfile; - edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 628
return error($c, "Build step $stepnr of build $id does not have a log file.") if $step->logfile eq ""; - edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 629
$c->stash->{build} = $build;$c->stash->{step} = $step; - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 631
$c->stash->{logtext} = loadLog($c, $step->logfile);$c->stash->{logtext} = loadLog($c, $c->stash->{build}->resultInfo->logfile); - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 649
sub download :Local {my ($self, $c, $id, $productnr, $filename, @path) = @_;sub download : Chained('build') PathPart('download') {my ($self, $c, $productnr, $filename, @path) = @_; - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 652[7.2596]→[7.80:192](∅→∅),[7.192]→[7.2596:2597](∅→∅),[7.2596]→[7.2596:2597](∅→∅),[7.2597]→[7.193:358](∅→∅)
my $build = getBuild($c, $id);return error($c, "Build with ID $id doesn't exist.") if !defined $build;my $product = $build->buildproducts->find({productnr => $productnr});return error($c, "Build $id doesn't have a product $productnr.") if !defined $product;my $product = $c->stash->{build}->buildproducts->find({productnr => $productnr});return error($c, "Build doesn't have a product $productnr.") if !defined $product; - edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 745
sub end : ActionClass('RenderView') {my ($self, $c) = @_; - replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 749[7.231]→[7.2597:2636](∅→∅),[7.293]→[7.2597:2636](∅→∅),[7.403]→[7.2597:2636](∅→∅),[7.510]→[7.2597:2636](∅→∅),[7.2597]→[7.2597:2636](∅→∅)
sub end : ActionClass('RenderView') {}if (scalar @{$c->error}) {$c->stash->{template} = 'error.tt';$c->stash->{errors} = $c->error;$c->clear_errors;}} - replacement in src/Hydra/root/build.tt at line 124
<a href="[% c.uri_for('/log' build.id) %]"><strong>Available</strong></a><a href="[% c.uri_for('build' build.id 'log') %]"><strong>Available</strong></a> - edit in src/Hydra/root/build.tt at line 181
[% log = c.uri_for('build' build.id 'nixlog' step.stepnr) %] - replacement in src/Hydra/root/build.tt at line 183
[% IF step.logfile %] onclick="window.location = '[% c.uri_for('/nixlog' build.id step.stepnr) %]'" [% END %]>[% IF step.logfile %] onclick="window.location = '[% log %]'" [% END %]> - replacement in src/Hydra/root/build.tt at line 216
(<a href="[% c.uri_for('/nixlog' build.id step.stepnr) %]">log</a>)(<a href="[% log %]">log</a>) - replacement in src/Hydra/root/error.tt at line 6
<p>I'm very sorry, but an error occurred: <span class="error-msg">[% HTML.escape(error) %]</span></p><p>I'm very sorry, but an error occurred: <span class="error-msg">[% FOREACH error IN errors %] [% HTML.escape(error) %] [% END %]</span></p> - replacement in src/Hydra/root/product-list.tt at line 8
[% uri = c.uri_for('build' build.id 'download' product.productnr product.name) %] - replacement in src/Hydra/root/product-list.tt at line 16
<a href="[% c.uri_for('/nixpkg' build.id) %]">[% uri = c.uri_for('nixpkg' build.id) %]<a href="[% uri %]"> - replacement in src/Hydra/root/product-list.tt at line 31
<pre>$ nix-install-package --non-interactive --url [% c.uri_for('/nixpkg' build.id) %]</pre><pre>$ nix-install-package --non-interactive --url [% uri %]</pre> - replacement in src/Hydra/root/product-list.tt at line 82
<a href="[% c.uri_for('/download' build.id product.productnr product.name) %]"><a href="[% uri %]"> - replacement in src/Hydra/root/product-list.tt at line 102
<a href="[% c.uri_for('/download' build.id product.productnr product.name) %]"><tt>[% c.uri_for('/download' build.id product.productnr product.name) %]</tt><a href="[% uri %]"><tt>[% uri %]</tt> - replacement in src/Hydra/root/product-list.tt at line 118
<a href="[% c.uri_for('/download' build.id product.productnr product.name) %]"><a href="[% uri %]"> - replacement in src/Hydra/root/product-list.tt at line 132
<a href="[% c.uri_for('/download' build.id product.productnr product.name) %]"><a href="[% uri %]">