Changeset df56f7e in rtems-source-builder


Ignore:
Timestamp:
May 1, 2013, 12:42:08 AM (6 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, 4.9, master
Children:
cd3d3ae
Parents:
c914e1d
Message:

Improve the email reporter.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source-builder/sb/setbuilder.py

    rc914e1d rdf56f7e  
    6363        self.mail_header = ''
    6464        self.mail_report = ''
    65         self.build_failed = False
     65        self.build_failure = None
    6666
    6767    def write_mail_header(self, text, prepend = False):
     
    288288
    289289        if self.opts.get_arg('--mail'):
    290             mail_report_subject = \
    291                 '%s %s (%s)' % (self.bset,
    292                                 self.macros.expand('%{_host}'),
    293                                 datetime.datetime.now().ctime())
     290            mail_report_subject = '%s %s' % (self.bset, self.macros.expand('%{_host}'))
    294291
    295292        configs = self.load()
     
    300297
    301298        start = datetime.datetime.now()
     299
     300        mail_report = False
    302301
    303302        try:
     
    318317                        del bs
    319318                    elif configs[s].endswith('.cfg'):
     319                        mail_report = self.opts.get_arg('--mail')
    320320                        log.trace('_bset: %s' % ('-' * 80))
    321321                        b = build.build(configs[s], self.opts.get_arg('--pkg-tar-files'),
     
    331331                        raise error.general('invalid config type: %s' % (configs[s]))
    332332                except error.general, gerr:
    333                     self.build_failed = True
     333                    if self.build_failure is None:
     334                        self.build_failure = b.name()
    334335                    self.write_mail_header('')
    335336                    self.write_mail_header('= ' * 40)
     
    356357            for b in builds:
    357358                del b
     359        except error.general, gerr:
     360            raise
     361        except KeyboardInterrupt:
     362            mail_report = False
     363            raise
    358364        except:
    359             self.build_failed = True
     365            self.build_failure = 'RSB general failure'
    360366            raise
    361367        finally:
     
    363369            os.environ['PATH'] = current_path
    364370            build_time = str(end - start)
    365             if self.opts.get_arg('--mail'):
     371            if mail_report:
    366372                to_addr = self.opts.get_arg('--mail-to')
    367373                if to_addr is not None:
     
    373379                self.write_mail_header('')
    374380                m = mailer.mail(self.opts)
    375                 if self.build_failed:
    376                     pass_fail = 'FAILED '
     381                if self.build_failure is not None:
     382                    mail_report_subject = 'Build: FAILED %s (%s)' %\
     383                        (mail_report_subject, self.build_failure)
     384                    pass_fail = 'FAILED'
    377385                else:
    378                     pass_fail = ''
    379                 mail_report_subject = 'Build: %s%s' % (pass_fail, mail_report_subject)
     386                    mail_report_subject = 'Build: PASSED %s' % (mail_report_subject)
    380387                if not self.opts.dry_run():
    381                     m.send(to_addr, mail_report_subject, self.mail_header + self.mail_report)
     388                    m.send(to_addr, mail_report_subject,
     389                           self.mail_header + self.mail_report)
    382390            log.notice('Build Set: Time %s' % (build_time))
    383391
Note: See TracChangeset for help on using the changeset viewer.