* At top-level and for each project, provide two channels: "latest"

[?]
Mar 4, 2009, 4:36 PM
AKAZKCR6GFCZQBR2ZJSZEI3SXW4S25V7X7JGHUYNUITQQSAVAF5AC

Dependencies

  • [2] WJ35RSKA
  • [3] FYWE74AA
  • [4] 7UJ5YV4V * Provide a channel for each project containing all the latest
  • [5] 5NO7NCKT * Refactoring.
  • [6] J5UVLXOK * Start of a basic Catalyst web interface.
  • [7] FPK5LF53 * Put the project-related actions in a separate controller. Put the
  • [8] SHBLLAVH * More global substitution.
  • [9] UVMFS73T * Some jQuery / CSS hackery.
  • [10] 2JQ7WEFM
  • [11] LVJKRTIK * Generate a Nix expression for the channel.
  • [12] PCK2Q2VO
  • [13] WYN733ST * Store build duration, handle cached builds.
  • [14] K2NXFFKH
  • [15] ELCI5T2A * Show the latest build for each job.
  • [16] 7LKUAIGC
  • [17] L2E6EVE2 * Merged the Build and Job tables.
  • [18] 2AUODJBT
  • [19] BPVJBR2P * Only put Nix builds in the global channel.
  • [20] 6LTPI6B2
  • [21] BHZXGT2H * Channels: provide an index page that lists all the packages in the
  • [*] LBNVQXUB * Build the /build stuff in a separate controller.

Change contents

  • replacement in src/Hydra/lib/Hydra/Base/Controller/ListBuilds.pm at line 5
    [5.74][5.74:107]()
    use base 'Catalyst::Controller';
    [5.74]
    [5.107]
    use base 'Hydra::Base::Controller::NixChannel';
  • edit in src/Hydra/lib/Hydra/Base/Controller/ListBuilds.pm at line 38
    [5.985]
    [5.985]
    sub nix : Chained('get_builds') PathPart('channel') CaptureArgs(1) {
    my ($self, $c, $channelName) = @_;
    eval {
    if ($channelName eq "latest") {
    $c->stash->{channelName} = $c->stash->{channelBaseName} . "-latest";
    getChannelData($c, getLatestBuilds($c, $c->stash->{allBuilds}, {buildStatus => 0}));
    }
    elsif ($channelName eq "all") {
    $c->stash->{channelName} = $c->stash->{channelBaseName} . "-all";
    getChannelData($c, [$c->stash->{allBuilds}->all]);
    }
    else {
    error($c, "Unknown channel `$channelName'.");
    }
    };
    error($c, $@) if $@;
    }
  • edit in src/Hydra/lib/Hydra/Controller/Project.pm at line 6
    [5.1357][4.0:48]()
    use base 'Hydra::Base::Controller::NixChannel';
  • edit in src/Hydra/lib/Hydra/Controller/Project.pm at line 227
    [4.53][4.53:390](),[4.390][5.9162:9166](),[5.9162][5.9162:9166]()
    # Hydra::Base::Controller::NixChannel needs this.
    sub nix : Chained('project') PathPart('channel/latest') CaptureArgs(0) {
    my ($self, $c) = @_;
    eval {
    $c->stash->{channelName} = $c->stash->{curProject}->name . "-latest";
    getChannelData($c, scalar $c->stash->{curProject}->builds);
    };
    error($c, $@) if $@;
    }
  • edit in src/Hydra/lib/Hydra/Controller/Project.pm at line 231
    [5.9369]
    [5.9369]
    $c->stash->{channelBaseName} = $c->stash->{curProject}->name;
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 5
    [5.873][3.132:180]()
    use base 'Hydra::Base::Controller::NixChannel';
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 234
    [5.246][5.1507:1509](),[5.397][5.1507:1509](),[5.413][5.1507:1509](),[5.420][5.1507:1509](),[5.775][5.1507:1509](),[5.1507][5.1507:1509](),[5.1509][5.373:375](),[5.375][2.62:129](),[2.129][5.431:456](),[5.431][5.431:456](),[5.456][4.391:510](),[5.379][5.655:662](),[4.510][5.655:662](),[5.655][5.655:662](),[5.662][4.511:536]()
    }
    sub nix : Chained('/') PathPart('channel/latest') CaptureArgs(0) {
    my ($self, $c) = @_;
    eval {
    $c->stash->{channelName} = "hydra-all-latest";
    getChannelData($c, $c->model('DB::Builds'));
    };
    error($c, $@) if $@;
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 241
    [5.9650]
    [5.9650]
    $c->stash->{channelBaseName} = "everything";
  • edit in src/Hydra/lib/Hydra/Helper/CatalystUtils.pm at line 73
    [4.678][4.678:749]()
    my @builds = @{getLatestBuilds($c, $builds, {buildStatus => 0})};
  • replacement in src/Hydra/lib/Hydra/Helper/CatalystUtils.pm at line 74
    [4.774][4.774:808]()
    foreach my $build (@builds) {
    [4.774]
    [4.808]
    foreach my $build (@{$builds}) {