[?]
Feb 25, 2009, 4:29 PM
2JQ7WEFMU5IPCUKLGRLVVT4MYMKVHJDZVMOOOPL6K5RLEZ532LGQC

Dependencies

  • [2] XHVZXX6N
  • [3] SHBLLAVH * More global substitution.
  • [4] YTSIRIMK * Separate job status and all builds pages.
  • [5] NYC3LZKH * Generate NAR archives on the fly. Necessary for producing channels
  • [6] J5UVLXOK * Start of a basic Catalyst web interface.
  • [7] LBNVQXUB * Build the /build stuff in a separate controller.
  • [8] ZRBXLKFO
  • [9] JLDUSNUO * Unify rendering of finished and scheduled builds.
  • [10] IWVA2P2Y * Generate manifests on demand. Next step: generate NAR archives on
  • [11] 5NO7NCKT * Refactoring.
  • [12] UHANDRAR * Closure downloads: don't include the product number; it's not needed.
  • [13] Y35C6GHH * One-click installs.
  • [14] SMM4HQTP * Put actions related to builds under /build (e.g. /log/<buildid>
  • [15] 2AUODJBT
  • [16] 2AIIYGI5 * Show job status and all builds for a project.

Change contents

  • edit in src/Hydra/lib/Hydra/Controller/Build.pm at line 125
    [3.1791][3.1791:1832]()
    $c->stash->{name} = $build->nixname;
  • edit in src/Hydra/lib/Hydra/Controller/Build.pm at line 126
    [3.1881]
    [2.363]
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 5
    [3.873][3.1882:1915]()
    use base 'Catalyst::Controller';
    [3.873]
    [3.86]
    use base 'Hydra::Base::Controller::Nix';
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 100
    [3.4][3.0:20]()
    sub showJobStatus {
    [3.4]
    [3.27]
    # Return the latest build for each job.
    sub getLatestBuilds {
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 103
    [3.54][3.52:154](),[3.52][3.52:154](),[3.154][3.55:108]()
    $c->stash->{template} = 'jobstatus.tt';
    # Get the latest finished build for each unique job.
    $c->stash->{latestBuilds} = [$builds->search({},
    [3.54]
    [3.226]
    return $builds->search({},
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 112
    [3.509][3.509:522]()
    })];
    [3.509]
    [3.522]
    });
    }
    sub showJobStatus {
    my ($c, $builds) = @_;
    $c->stash->{template} = 'jobstatus.tt';
    # Get the latest finished build for each unique job.
    $c->stash->{latestBuilds} = [getLatestBuilds($c, $builds)];
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 546
    [3.1509]
    [3.1509]
    sub nix : Chained('/') PathPart('nix') CaptureArgs(0) {
    my ($self, $c) = @_;
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 551
    [3.1510]
    [3.1510]
    my @builds = getLatestBuilds($c, $c->model('DB::Builds'));
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 553
    [3.1511]
    [3.1511]
    my @storePaths = ();
    foreach my $build (@builds) {
    push @storePaths, $build->outpath if isValidPath($build->outpath);
    };
    $c->stash->{storePaths} = [@storePaths];
    }
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 574
    [3.1710]
    [3.1710]
    if ($c->response->status >= 300) {
    $c->stash->{httpStatus} =
    $c->response->status . " " . HTTP::Status::status_message($c->response->status);
    }
  • edit in src/Hydra/lib/Hydra/View/NixManifest.pm at line 6
    [3.386][3.386:400]()
    use IPC::Run;
  • edit in src/Hydra/lib/Hydra/View/NixManifest.pm at line 7
    [3.420][3.420:593]()
    sub captureStdoutStderr {
    my $stdin = ""; my $stdout; my $stderr;
    my $res = IPC::Run::run(\@_, \$stdin, \$stdout, \$stderr);
    return ($res, $stdout, $stderr);
    }
  • replacement in src/Hydra/lib/Hydra/View/NixManifest.pm at line 16
    [3.744][3.4563:4707]()
    my @paths = split '\n', `nix-store --query --requisites @storePaths`
    or die "cannot query dependencies of path(s) @storePaths: $?";
    [3.744]
    [3.880]
    my @paths = split '\n', `nix-store --query --requisites @storePaths`;
    die "cannot query dependencies of path(s) @storePaths: $?" if $? != 0;
  • replacement in src/Hydra/lib/Hydra/View/NixManifest.pm at line 25
    [3.1011][3.1011:1213]()
    my ($res, $out, $err) = captureStdoutStderr(qw(nix-store --query --references), $path);
    die "cannot query references of `$path':\n$err" unless $res;
    my @refs = split '\n', $out;
    [3.1011]
    [3.1213]
    my @refs = split '\n', `nix-store --query --references $path`;
    die "cannot query references of `$path': $?" if $? != 0;
  • replacement in src/Hydra/root/error.tt at line 4
    [3.8539][3.8539:8554]()
    <h1>Error</h1>
    [3.8539]
    [3.8554]
    <h1>[% IF httpStatus %][% httpStatus %][% ELSE %]Error[% END %]</h1>