* At top-level and for each project, provide two channels: "latest"
[?]
Mar 4, 2009, 4:36 PM
AKAZKCR6GFCZQBR2ZJSZEI3SXW4S25V7X7JGHUYNUITQQSAVAF5ACDependencies
- [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
use base 'Catalyst::Controller';use base 'Hydra::Base::Controller::NixChannel'; - edit in src/Hydra/lib/Hydra/Base/Controller/ListBuilds.pm at line 38
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
use base 'Hydra::Base::Controller::NixChannel'; - edit in src/Hydra/lib/Hydra/Controller/Project.pm at line 227
# 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
$c->stash->{channelBaseName} = $c->stash->{curProject}->name; - edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 5
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
$c->stash->{channelBaseName} = "everything"; - edit in src/Hydra/lib/Hydra/Helper/CatalystUtils.pm at line 73
my @builds = @{getLatestBuilds($c, $builds, {buildStatus => 0})}; - replacement in src/Hydra/lib/Hydra/Helper/CatalystUtils.pm at line 74
foreach my $build (@builds) {foreach my $build (@{$builds}) {