* A quick (non-Web 2.0) interface to manually add builds to a release.

[?]
Oct 23, 2009, 3:57 PM
Z6MDQIGODVE7RXX5U5D64EEC2ZDEZ36Z4ZMPFYIHWBG42IXUDYFQC

Dependencies

  • [2] TW5ZQX5Z * Move up the build products in the builds page, since they're more
  • [3] AS2OXLRM * Editing releases.
  • [4] KXGOUX7P * Creating releases.
  • [5] RBNQKATL * Adding persistant releases. A release is a named set of builds.
  • [*] LBNVQXUB * Build the /build stuff in a separate controller.
  • [*] NEWDDAOF * Allow users to change the value of a build's "keep" flag, which
  • [*] A52HEFHQ * Allow builds to be restarted (if they failed with a transient error,
  • [*] FPK5LF53 * Put the project-related actions in a separate controller. Put the
  • [*] J5UVLXOK * Start of a basic Catalyst web interface.

Change contents

  • edit in src/lib/Hydra/Controller/Build.pm at line 355
    [8.597]
    [9.818]
    $c->res->redirect($c->uri_for($self->action_for("view_build"), $c->req->captures));
    }
    sub add_to_release : Chained('build') PathPart('add-to-release') Args(0) {
    my ($self, $c) = @_;
    my $build = $c->stash->{build};
    requireProjectOwner($c, $build->project);
    my $releaseName = trim $c->request->params->{name};
    my $release = $build->project->releases->find({name => $releaseName});
    error($c, "This project has no release named `$releaseName'.") unless $release;
    error($c, "This build is already a part of release `$releaseName'.")
    if $release->releasemembers->find({build => $build->id});
    $release->releasemembers->create({build => $build->id, description => $build->description});
  • edit in src/lib/Hydra/Controller/Build.pm at line 378
    [9.823]
    [10.1155]
    $c->flash->{buildMsg} = "Build added to project <tt>$releaseName</tt>.";
  • edit in src/root/build.tt at line 209
    [2.2]
    [2.2]
    [% IF c.user_exists %]
    <form action="[% c.uri_for('/build' build.id 'add-to-release') %]" method="post">
    <p>Add to release: <input type="text" class="string" name="name" />
    <button type="submit"><img src="/static/images/success.gif" />Apply</button></p>
    </form>
    [% END %]
  • edit in src/root/edit-release.tt at line 20
    [4.5191]
    [4.5191]
    <p><em>Note:</em> to add a build to this release, go to the build’s
    information page and click on “Add to release”.</p>
  • replacement in src/root/edit-release.tt at line 30
    [3.1882][3.1882:2004]()
    <p><button id="delete-release" type="submit"><img src="/static/images/failure.gif" />Delete this release</button></p>
    [3.1882]
    [3.2004]
    <p><a id="delete-release" type="submit"><img src="/static/images/failure.gif" />Delete this release</button></p>
  • edit in src/root/release.tt at line 3
    [3.2285]
    [3.2285]
    [% PROCESS "product-list.tt" %]
  • replacement in src/root/release.tt at line 9
    [3.2447][3.2447:2535]()
    <p><em>Released on [% INCLUDE renderDateTime timestamp = release.timestamp %].</em></p>
    [3.2447]
    [3.2535]
    <p><em>Released on [% INCLUDE renderDateTime timestamp =
    release.timestamp %].</em></p>
    [% IF !release.releasemembers %]
    <p><em>No builds have been added to this release yet.</em></p>
    [% ELSE %]
    [% FOREACH m IN release.releasemembers %]
    <h2>
    <a href="[% c.uri_for('/build' m.build.id) %]">
    [% HTML.escape(m.description) %]
    </a>
    </h2>
    [% INCLUDE renderProductList build=m.build latestRoot=['/view!!!' project.name view.name 'latest' j.job.job] %]
    [% END %]
  • edit in src/root/release.tt at line 31
    [3.2546]
    [% END %]
  • edit in src/root/releases.tt at line 7
    [4.3796][4.3796:3823](),[4.3823][4.5387:5478](),[4.5478][4.3917:3933](),[4.3917][4.3917:3933]()
    [% IF c.user_exists %]
    <p>
    [<a href="[% c.uri_for('/project' project.name 'create-release') %]">Create a release</a>]
    </p>
    [% END %]
  • edit in src/root/releases.tt at line 13
    [4.4025]
    [4.4025]
    <p>This project has made the following releases:</p>
  • edit in src/root/releases.tt at line 23
    [4.4137]
    [4.4137]
    [% IF c.user_exists %]
    <p>
    [<a href="[% c.uri_for('/project' project.name 'create-release') %]">Create a release</a>]
    </p>
    [% END %]