hydra

[?]
Jan 6, 2010, 1:07 PM
FYO6NECE4YJC76HQIG35NNJABODV7KNQKREK5YKZU6O2MNNSQTMAC

Dependencies

  • [2] MPGVCHVF * Fix an apparent incompatibility with recent DBIx::Class.
  • [3] JTRG7RDQ add support for git as jobinput
  • [4] CXRCPDSQ * added support for twitter notification
  • [5] NI5BVF2V * In job inputs of type "build", allow the project and jobset names of
  • [6] LZO3C2KI * Hack around those SQLite timeouts: just retry the transaction.
  • [7] SHZLOM5M * eval-jobs -> hydra_eval_jobs.
  • [8] GA6XIXAN * Show the input bindings in evaluation error messages.
  • [9] 6KCP6ODP * Get the URI for use in notification mails from the Hydra config
  • [10] OG7BEM57
  • [11] QUTWJR7P * Include more info in notification emails.
  • [12] ZDNXMJ3J * Typo.
  • [13] G5A7TZVI * Don't discard old build steps when restarting a build.
  • [14] CLJQCY2X * Store info about all the build actions and allow them to be
  • [15] 7YBYT2LQ
  • [16] QE253KG4 * Option to show the tail of a log.
  • [17] A63IHCMX * Register GC roots properly.
  • [18] X27GNHDV * Basic job info in the database.
  • [19] 2IEFMER5 * Add --fallback to prevent problems with obsolete substitutes.
  • [20] KA45EBF5 * Send email if a build fails.
  • [21] XZ7ZIKCV * Allow overriding the sender email address.
  • [*] 3HZY24CX * Make jobsets viewable under
  • [*] 4D4U5IPY * Allow jobsets to be disabled.
  • [*] ODNCGFQ5 * Improved the navigation bar: don't include all projects (since that
  • [*] N22GPKYT * Put info about logs / build products in the DB.
  • [*] KN3VYE5P * Cleaned up the foreign key constraints.

Change contents

  • edit in src/lib/Hydra/Controller/Jobset.pm at line 152
    [24.145]
    [25.2272]
    , enableemail => trim($c->request->params->{enableemail}) eq "1" ? 1 : 0
    , emailoverride => trim($c->request->params->{emailoverride})
  • edit in src/lib/Hydra/Schema/Jobsets.pm at line 74
    [24.1765]
    [24.1765]
    { data_type => "integer", default_value => 1, is_nullable => 0, size => undef },
    "enableemail",
  • edit in src/lib/Hydra/Schema/Jobsets.pm at line 77
    [24.1848]
    [4.2524]
    "emailoverride",
    {
    data_type => "text",
    default_value => undef,
    is_nullable => 0,
    size => undef,
    },
  • edit in src/lib/Hydra/Schema/Jobsets.pm at line 126
    [4.2992]
    [3.4425]
    # Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2010-01-06 10:15:26
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:buO0P7XQexj6YEwEAsq3EQ
    # These lines were loaded from '/home/rbvermaa/src/hydra/src/lib/Hydra/Schema/Jobsets.pm' found in @INC.
    # They are now part of the custom portion of this file
    # for you to hand-edit. If you do not either delete
    # this section or remove that file from @INC, this section
    # will be repeated redundantly when you re-create this
    # file again via Loader!
    package Hydra::Schema::Jobsets;
    # Created by DBIx::Class::Schema::Loader
    # DO NOT MODIFY THE FIRST PART OF THIS FILE
    use strict;
    use warnings;
    use base 'DBIx::Class';
    __PACKAGE__->load_components("Core");
    __PACKAGE__->table("Jobsets");
    __PACKAGE__->add_columns(
    "name",
    {
    data_type => "text",
    default_value => undef,
    is_foreign_key => 1,
    is_nullable => 0,
    size => undef,
    },
    "project",
    {
    data_type => "text",
    default_value => undef,
    is_foreign_key => 1,
    is_nullable => 0,
    size => undef,
    },
    "description",
    {
    data_type => "text",
    default_value => undef,
    is_nullable => 1,
    size => undef,
    },
    "nixexprinput",
    {
    data_type => "text",
    default_value => undef,
    is_foreign_key => 1,
    is_nullable => 0,
    size => undef,
    },
    "nixexprpath",
    {
    data_type => "text",
    default_value => undef,
    is_nullable => 0,
    size => undef,
    },
    "errormsg",
    {
    data_type => "text",
    default_value => undef,
    is_nullable => 1,
    size => undef,
    },
    "errortime",
    {
    data_type => "integer",
    default_value => undef,
    is_nullable => 1,
    size => undef,
    },
    "lastcheckedtime",
    {
    data_type => "integer",
    default_value => undef,
    is_nullable => 1,
    size => undef,
    },
    "enabled",
    { data_type => "integer", default_value => 1, is_nullable => 0, size => undef },
    );
    __PACKAGE__->set_primary_key("project", "name");
    __PACKAGE__->belongs_to("project", "Hydra::Schema::Projects", { name => "project" });
    __PACKAGE__->belongs_to(
    "jobsetinput",
    "Hydra::Schema::JobsetInputs",
    { jobset => "name", name => "nixexprinput", project => "project" },
    );
    __PACKAGE__->has_many(
    "jobsetinputs",
    "Hydra::Schema::JobsetInputs",
    {
    "foreign.jobset" => "self.name",
    "foreign.project" => "self.project",
    },
    );
    __PACKAGE__->has_many(
    "jobs",
    "Hydra::Schema::Jobs",
    {
    "foreign.jobset" => "self.name",
    "foreign.project" => "self.project",
    },
    );
    __PACKAGE__->has_many(
    "builds",
    "Hydra::Schema::Builds",
    {
    "foreign.jobset" => "self.name",
    "foreign.project" => "self.project",
    },
    );
    __PACKAGE__->has_many(
    "jobsetinputhashes",
    "Hydra::Schema::JobsetInputHashes",
    {
    "foreign.jobset" => "self.name",
    "foreign.project" => "self.project",
    },
    );
  • edit in src/lib/Hydra/Schema/Jobsets.pm at line 253
    [3.4570]
    [4.3134]
    # You can replace this text with custom content, and it will be preserved on regeneration
    1;
    # End of lines loaded from '/home/rbvermaa/src/hydra/src/lib/Hydra/Schema/Jobsets.pm'
  • edit in src/root/jobset.tt at line 79
    [24.3183]
    [25.11104]
    </td>
    </tr>
    <tr>
    <th>Enable email notification:</th>
    <td>
    [% INCLUDE renderSelection param="enableemail" curValue=jobset.enableemail options={"1" = "Yes", "0" = "No"} %]
    </td>
    </tr>
    <tr>
    <th>Email override:</th>
    <td>
    [% INCLUDE maybeEditString param="emailoverride" value=jobset.emailoverride %]
  • edit in src/script/hydra_build.pl at line 64
    [4.1032][2.2:3]()
  • replacement in src/script/hydra_build.pl at line 70
    [4.79][4.79:115]()
    return if !$build->maintainers;
    [4.79]
    [4.115]
    return if !($build->maintainers || $build->jobset->enableemail);
  • replacement in src/script/hydra_build.pl at line 74
    [4.453][4.148:324]()
    if ($build->resultInfo->buildstatus == 0) {
    # Build succeeded. Only send mail if the previous build for
    # the same platform failed.
    return; # TODO
    [4.453]
    [4.324]
    my $prevBuild;
    ($prevBuild) = $db->resultset('Builds')->search(
    { project => $build->project->name
    , jobset => $build->jobset->name
    , job => $build->job->name
    , system => $build->system
    , finished => 1
    , id => { '!=', $build->id }
    }, { order_by => ["timestamp DESC"] }
    );
    if (defined $prevBuild && ($build->resultInfo->buildstatus == $prevBuild->resultInfo->buildstatus)) {
    return;
  • edit in src/script/hydra_build.pl at line 91
    [4.348][4.348:349]()
  • replacement in src/script/hydra_build.pl at line 97
    [4.573][4.573:661]()
    my $status =
    $build->resultInfo->buildstatus == 0 ? "SUCCEEDED" : "FAILED";
    [4.573]
    [4.661]
    my $status = $build->resultInfo->buildstatus == 0 ? "SUCCEEDED" : "FAILED";
    my $statusMsg;
    if(defined $prevBuild) {
    my $prevStatus = $prevBuild->resultInfo->buildstatus == 0 ? "SUCCEEDED" : "FAILED";
    $statusMsg = "changed from $prevStatus to $status";
    } else {
    $statusMsg = $status;
    }
  • replacement in src/script/hydra_build.pl at line 151
    [4.846][4.846:965]()
    . "This is to let you know that Hydra build " . $build->id
    . " of job " . $jobName . " has $status.\n"
    [4.846]
    [4.965]
    . "This is to let you know that Hydra build" . $build->id
    . " of job " . $jobName . " has $statusMsg.\n"
  • edit in src/script/hydra_build.pl at line 168
    [4.1153]
    [4.3076]
    # stripping trailing spaces from lines
    $body =~ s/[\ ]+$//gm;
  • edit in src/script/hydra_build.pl at line 171
    [4.3077]
    [4.541]
    my $to = (!$build->jobset->emailoverride eq "") ? $build->jobset->emailoverride : $build->maintainers;
  • replacement in src/script/hydra_build.pl at line 174
    [4.600][4.600:644]()
    To => $build->maintainers,
    [4.600]
    [4.1154]
    To => $to,
  • replacement in src/script/hydra_build.pl at line 218
    [4.1163][4.0:1]()
    [4.1163]
    [2.4]
    print STDERR $cmd;
  • replacement in src/script/hydra_scheduler.pl at line 163
    [4.899][4.899:934]()
    setJobsetError($jobset, $msg);
    [4.899]
    [4.9880]
    if( !($msg eq "") ) {
    setJobsetError($jobset, $msg);
    }
  • replacement in src/script/hydra_scheduler.pl at line 183
    [4.2437][4.2437:2480]()
    setJobsetError($jobset, $msg);
    [4.2437]
    [4.2480]
    if( !($msg eq "") ) {
    setJobsetError($jobset, $msg);
    }
  • edit in src/sql/hydra.sql at line 42
    [27.5479]
    [27.5479]
    enableEmail integer not null default 1,
    emailOverride text not null,