* email notification of evaluation errors to project owner (if desired)

[?]
Dec 18, 2009, 12:07 PM
ZDENAYQI5DRRNUIDVKUGC45NK6C4ZFUL5FYMACTRZOCYQXPMY63QC

Dependencies

  • [2] JTRG7RDQ add support for git as jobinput
  • [3] S66BOMVU * Added authentication.
  • [4] FHF6IZJQ * Basic release management: releases are now dynamically computed as
  • [5] 3HCBU2FA
  • [6] OOQ2D3KC * Refactoring: move fetchInput out of hydra_scheduler into a separate
  • [7] POPU2ATH * hydra_scheduler: use eval-jobs.
  • [8] TLZ2SPBR
  • [9] V4RNHJNR * Add a link to each project's homepage. Suggested by karltk.
  • [10] S5PV6IIM * Represent jobs explicitly in the DB.
  • [11] H7CNGK4O * Log evaluation errors etc. in the DB.
  • [12] S6OISBQ3 * Mark the "current" builds in a jobset, i.e. those corresponding to
  • [13] P5X4P6VK * Renaming "release sets" to "views" (not finished yet). Having
  • [14] 3XTHEUMP * Implemented the clone feature.
  • [15] 4D4U5IPY * Allow jobsets to be disabled.
  • [16] N22GPKYT * Put info about logs / build products in the DB.
  • [17] BHZXGT2H * Channels: provide an index page that lists all the packages in the
  • [18] VJHIHMEH * Store the meta.longDescription and meta.license attributes in the
  • [19] R5D7DZPE
  • [20] LCKWLQW3 * In Sqlite "release" is now a keyword, so use "release_" instead.
  • [21] ECBA3GQO * Make the schema class names match the case of the SQL table names.
  • [22] RU7AQO7U * Role-based access control. Only admins can create projects. Only
  • [23] RBNQKATL * Adding persistant releases. A release is a named set of builds.
  • [24] AHTEIK7G * Added a maintainers field to the Builds table.
  • [25] GNIEG2GC * Disambiguate jobs by jobset name. I.e. jobs with the same name in
  • [26] 37R34XJO * Negative caching: don't perform a build if a dependency already
  • [27] AFTXA575 * $HYDRA_DATA environment variable.
  • [28] X27GNHDV * Basic job info in the database.
  • [29] EYNG4EL4 * Regenerate the bindings from a clean sqlite database.
  • [30] D3DIBMOK * For products that are directories (like manuals), allow a default
  • [31] 3E6IP3R3 * Add the name of the jobset to ReleaseSetJobs, otherwise we can't
  • [32] KN3VYE5P * Cleaned up the foreign key constraints.
  • [*] RWIBJ5L4 * Autoflush stdout.
  • [*] FDE3BJAP * Refactoring.
  • [*] IWHFLFVV * Randomly permute the order in which builds are added. This is

Change contents

  • edit in src/lib/Hydra/Schema/Users.pm at line 42
    [3.17600]
    [3.3735]
    "emailonerror",
    { data_type => "integer", default_value => 0, is_nullable => 0, size => undef },
  • replacement in src/lib/Hydra/Schema/Users.pm at line 58
    [3.3782][2.5301:5446]()
    # Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:oBiKpCxHGZcGujhY/ZbbxA
    [3.3782]
    [3.3924]
    # Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-12-18 12:57:04
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:/AWZnceSVTAlb5Tru9T1+g
  • edit in src/script/hydra_scheduler.pl at line 10
    [34.48]
    [3.1392]
    use Email::Sender::Simple qw(sendmail);
    use Email::Sender::Transport::SMTP;
    use Email::Simple;
    use Email::Simple::Creator;
    use Sys::Hostname::Long;
    use Config::General;
  • edit in src/script/hydra_scheduler.pl at line 17
    [3.1393]
    [34.49]
  • edit in src/script/hydra_scheduler.pl at line 21
    [3.1793]
    [3.1424]
    my %config = new Config::General($ENV{"HYDRA_CONFIG"})->getall;
  • edit in src/script/hydra_scheduler.pl at line 23
    [3.2168][3.6684:6685](),[3.6684][3.6684:6685]()
  • edit in src/script/hydra_scheduler.pl at line 41
    [3.3184]
    [3.3184]
    sendJobsetErrorNotification($jobset, $errorMsg);
  • edit in src/script/hydra_scheduler.pl at line 43
    [3.3186]
    [35.1179]
    sub sendJobsetErrorNotification() {
    my ($jobset, $errorMsg) = @_;
    return if $jobset->project->owner->emailonerror == 0;
  • edit in src/script/hydra_scheduler.pl at line 49
    [35.1180]
    [35.1180]
    my $projectName = $jobset->project->name;
    my $jobsetName = $jobset->name;
  • edit in src/script/hydra_scheduler.pl at line 52
    [35.1181]
    [36.0]
    my $sender = $config{'notification_sender'} ||
    (($ENV{'USER'} || "hydra") . "@" . hostname_long);
    my $body = "Hi,\n"
    . "\n"
    . "This is to let you know that Hydra jobset evalation of $projectName:$jobsetName "
    . "resulted in the following error:\n"
    . "\n"
    . "$errorMsg"
    . "\n"
    . "Regards,\n\nThe Hydra build daemon.\n";
    my $email = Email::Simple->create(
    header => [
    To => $jobset->project->owner->emailaddress,
    From => "Hydra Build Daemon <$sender>",
    Subject => "Hydra $projectName:$jobsetName evaluation error",
    ],
    body => $body,
    );
    print $email->as_string if $ENV{'HYDRA_MAIL_TEST'};
    sendmail($email);
    }
  • replacement in src/sql/hydra.sql at line 5
    [3.4084][3.4084:4131]()
    password text not null -- sha256 hash
    [3.4084]
    [3.4131]
    password text not null, -- sha256 hash
    emailOnError integer not null default 0