* Allow a view result to be saved as a release.

[?]
Oct 27, 2009, 3:31 PM
OW6XV2YSTYTBR5JO4FKCYAH44WX5UI2HUPIM6UIEQF7SPV7RLQFQC

Dependencies

  • [2] XBU2ODSP * More renaming.
  • [3] Z6MDQIGO * A quick (non-Web 2.0) interface to manually add builds to a release.
  • [4] P5X4P6VK * Renaming "release sets" to "views" (not finished yet). Having
  • [5] 2BUX775I * More release -> view.
  • [6] AS2OXLRM * Editing releases.
  • [*] JFZNAYJX * Showing releases.
  • [*] XJFHFZCA * Provide some redirects to build products by type so that we can for

Change contents

  • edit in src/lib/Hydra/Controller/View.pm at line 161
    [4.5204]
    [4.5204]
    my $result = getViewResult($primaryBuild, $c->stash->{jobs});
    $c->stash->{result} = $result;
    if (scalar @args == 1 && $args[0] eq "release") {
    requireProjectOwner($c, $c->stash->{project});
  • replacement in src/lib/Hydra/Controller/View.pm at line 168
    [4.5205][2.218:293]()
    $c->stash->{result} = getViewResult($primaryBuild, $c->stash->{jobs});
    [4.5205]
    [4.5278]
    error($c, "The primary build of this view result did not provide a release name.")
    unless $result->{releasename};
    error($c, "A release named `" . $result->{releasename} . "' already exists.")
    if $c->stash->{project}->releases->find({name => $result->{releasename}});
    my $release;
    txn_do($c->model('DB')->schema, sub {
    $release = $c->stash->{project}->releases->create(
    { name => $result->{releasename}
    , timestamp => time
    });
    foreach my $job (@{$result->{jobs}}) {
    $release->releasemembers->create(
    { build => $job->{build}->id
    , description => $job->{job}->description
    });
    }
    });
  • edit in src/lib/Hydra/Controller/View.pm at line 191
    [4.5279]
    [4.2339]
    $c->res->redirect($c->uri_for($c->controller('Release')->action_for('view'),
    [$c->stash->{project}->name, $release->name]));
    }
  • replacement in src/lib/Hydra/Controller/View.pm at line 201
    [4.2702][4.5634:5663](),[4.5634][4.5634:5663]()
    if (scalar @args != 0) {
    [4.2702]
    [4.5663]
    elsif (scalar @args != 0) {
  • replacement in src/lib/Hydra/Controller/View.pm at line 203
    [4.5698][4.2703:2805]()
    (my $build, my @others) = grep { $_->{job}->job eq $jobName } @{$c->stash->{result}->{jobs}};
    [4.5698]
    [4.2805]
    (my $build, my @others) = grep { $_->{job}->job eq $jobName } @{$result->{jobs}};
  • edit in src/root/product-list.tt at line 114
    [9.1577]
    [9.1577]
    [% IF latestRoot %]
  • edit in src/root/product-list.tt at line 130
    [8.5536]
    [8.5536]
    [% END %]
  • replacement in src/root/release.tt at line 26
    [3.1750][3.1750:1864]()
    [% INCLUDE renderProductList build=m.build latestRoot=['/view!!!' project.name view.name 'latest' j.job.job] %]
    [3.1750]
    [3.1864]
    [% INCLUDE renderProductList build=m.build %]
  • edit in src/root/view-result.tt at line 42
    [8.8271]
    [8.8271]
    [% END %]
  • edit in src/root/view-result.tt at line 45
    [8.8272]
    [8.8272]
    [% IF c.user_exists %]
    <p>
    [<a href="[% c.uri_for('/view' project.name view.name result.id 'release') %]">Release</a>]
    </p>