Changeset 65d9457 in rtems-source-builder


Ignore:
Timestamp:
May 14, 2014, 10:49:34 PM (5 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, 4.9, master
Children:
b09fde0
Parents:
83586f7
Message:

sb: Move error report generation to the build phase.

Generate a separate report of each package being built in a build set.
This creates a better list of faults in the case of nesting build sets
such as */rtems-all.

Location:
source-builder/sb
Files:
2 edited

Legend:

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

    r83586f7 r65d9457  
    109109        else:
    110110            return name
     111
     112    def _generate_report_(self, header):
     113        ereport.generate('rsb-report-%s.txt' % self.macros['name'], self.opts, header)
    111114
    112115    def __init__(self, name, create_tar_files, opts, macros = None):
     
    387390            log.notice('package: nothing to build')
    388391        else:
    389             name = package.name()
    390             if self.canadian_cross():
    391                 log.notice('package: (Cxc) %s' % (name))
    392             else:
    393                 log.notice('package: %s' % (name))
    394                 log.trace('---- macro maps %s' % ('-' * 55))
    395                 log.trace('%s' % (str(self.config.macros)))
    396                 log.trace('-' * 70)
    397             self.script.reset()
    398             self.script.append(self.config.expand('%{___build_template}'))
    399             self.script.append('echo "=> ' + name + ':"')
    400             self.prep(package)
    401             self.build_package(package)
    402             if not self.opts.dry_run():
    403                 self.builddir()
    404                 sn = path.join(self.config.expand('%{_builddir}'), 'doit')
    405                 log.output('write script: ' + sn)
    406                 self.script.write(sn)
     392            try:
     393                name = package.name()
    407394                if self.canadian_cross():
    408                     log.notice('building: (Cxc) %s' % (name))
     395                    log.notice('package: (Cxc) %s' % (name))
    409396                else:
    410                     log.notice('building: %s' % (name))
    411                 self.run(sn)
     397                    log.notice('package: %s' % (name))
     398                    log.trace('---- macro maps %s' % ('-' * 55))
     399                    log.trace('%s' % (str(self.config.macros)))
     400                    log.trace('-' * 70)
     401                self.script.reset()
     402                self.script.append(self.config.expand('%{___build_template}'))
     403                self.script.append('echo "=> ' + name + ':"')
     404                self.prep(package)
     405                self.build_package(package)
     406                if not self.opts.dry_run():
     407                    self.builddir()
     408                    sn = path.join(self.config.expand('%{_builddir}'), 'doit')
     409                    log.output('write script: ' + sn)
     410                    self.script.write(sn)
     411                    if self.canadian_cross():
     412                        log.notice('building: (Cxc) %s' % (name))
     413                    else:
     414                        log.notice('building: %s' % (name))
     415                    self.run(sn)
     416            except error.general, gerr:
     417                log.notice(str(gerr))
     418                log.stderr('Build FAILED')
     419                self._generate_report_('Build: %s' % (gerr))
     420                raise
     421            except error.internal, ierr:
     422                log.notice(str(ierr))
     423                log.stderr('Internal Build FAILED')
     424                self._generate_report_('Build: %s' % (ierr))
     425                raise
     426            except:
     427                raise
     428            if self.opts.dry_run():
     429                self._generate_report_('Build: dry run')
    412430
    413431    def name(self):
     
    455473def run(args):
    456474    ec = 0
    457     opts = None
    458     b = None
    459     erheader = None
    460475    try:
    461476        optargs = { '--list-configs': 'List available configurations' }
     
    480495                b = None
    481496    except error.general, gerr:
    482         erheader = 'Build: %s' % (gerr)
    483         log.notice(str(gerr))
    484497        log.stderr('Build FAILED')
    485498        ec = 1
    486499    except error.internal, ierr:
    487         erheader = 'Build: %s' % (ierr)
    488         log.notice(str(ierr))
    489500        log.stderr('Internal Build FAILED')
    490501        ec = 1
     
    494505        log.notice('abort: user terminated')
    495506        ec = 1
    496     if (ec != 0 and erheader and opts and b) or (opts and opts.dry_run()):
    497         if opts.dry_run():
    498             bname = 'dry-run'
    499         else:
    500             bname = b.name()
    501         ereport.generate('rsb-report-%s.txt' % (bname), opts, erheader)
    502507    sys.exit(ec)
    503508
  • source-builder/sb/setbuilder.py

    r83586f7 r65d9457  
    428428    import sys
    429429    ec = 0
    430     opts = None
    431     b = None
    432     erheader = None
    433430    try:
    434431        optargs = { '--list-configs':  'List available configurations',
     
    465462                print 'dep[%d]: %s' % (c, d)
    466463    except error.general, gerr:
    467         erheader = 'Build: %s' % (gerr)
    468         log.notice(str(gerr))
    469464        log.stderr('Build FAILED')
    470465        ec = 1
    471466    except error.internal, ierr:
    472         erheader = 'Build: %s' % (ierr)
    473         log.notice(str(ierr))
    474467        log.stderr('Internal Build FAILED')
    475468        ec = 1
     
    479472        log.notice('abort: user terminated')
    480473        ec = 1
    481     if (ec != 0 and erheader and opts and b) or (opts and opts.dry_run()):
    482         if opts.dry_run():
    483             bset = 'dry-run'
    484         else:
    485             bset = b.bset
    486         ereport.generate('rsb-report-%s.txt' % (bset), opts, erheader)
    487474    sys.exit(ec)
    488475
Note: See TracChangeset for help on using the changeset viewer.