* Provide a redirect to the latest successful release in a release set

[?]
Dec 15, 2008, 1:12 PM
ZNFDFJHGXHSUP3NT5BZSGZPUFYMXCNTJRLSVD6PYF3N6O6ONAWRAC

Dependencies

Change contents

  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 308
    [2.847]
    [4.668]
    }
    sub getPrimaryBuildsForReleaseSet {
    my ($project, $primaryJob) = @_;
    my @primaryBuilds = $project->builds->search(
    { attrname => $primaryJob->job, finished => 1 },
    { join => 'resultInfo', order_by => "timestamp DESC"
    , '+select' => ["resultInfo.releasename"], '+as' => ["releasename"]
    , where => \ attrsToSQL($primaryJob->attrs, "me.id")
    });
    return @primaryBuilds;
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 358
    [4.654][4.1233:1340](),[4.1625][4.1233:1340](),[4.1233][4.1233:1340](),[4.1340][4.655:865]()
    my @primaryBuilds = $project->builds->search(
    { attrname => $primaryJob->job, finished => 1 },
    { join => 'resultInfo', order_by => "timestamp DESC"
    , '+select' => ["resultInfo.releasename"], '+as' => ["releasename"]
    , where => \ attrsToSQL($primaryJob->attrs, "me.id")
    });
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 360
    [4.1496][4.2015:2078](),[4.2078][4.1496:1497](),[4.1496][4.1496:1497]()
    push @releases, getRelease($c, $_) foreach @primaryBuilds;
    [4.1496]
    [4.2079]
    push @releases, getRelease($c, $_) foreach getPrimaryBuildsForReleaseSet($project, $primaryJob);
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 404
    [4.1791]
    [4.2876]
    if ($releaseId eq "latest") {
    # Redirect to the latest successful release.
    my $latest;
    foreach my $release (getPrimaryBuildsForReleaseSet($project, $primaryJob)) {
    if (getRelease($c, $release)->{status} == 0) {
    $latest = $release;
    last;
    }
    }
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 415
    [4.2877]
    [4.2346]
    return error($c, "This release set has no successful releases yet.") if !defined $latest;
    return $c->res->redirect($c->uri_for("/release", $projectName, $releaseSetName, $latest->id));
    }
  • replacement in src/Hydra/root/releases.tt at line 7
    [3.748][3.748:844]()
    <p>[<a href="[% c.uri_for('/releases' curProject.name releaseSet.name "edit") %]">Edit</a>]</p>
    [3.748]
    [4.8594]
    <p>
    [<a href="[% c.uri_for('/releases' curProject.name releaseSet.name "edit") %]">Edit</a>]
    [<a href="[% c.uri_for('/release' curProject.name releaseSet.name "latest") %]">Latest</a>]
    </p>