Ejemplo n.º 1
0
    def execute(self, db):

        success = self.build_failed
        try:
            logging.info("Build started")
            self.project.build(skip_pkglist=False,
                               build_bin=self.build_bin,
                               build_sources=self.build_src,
                               skip_pbuild=self.skip_pbuilder)
        except (DebootstrapException, AptCacheCommitError,
                AptCacheUpdateError) as e:
            if isinstance(e, DebootstrapException):
                err = "Debootstrap failed to install the base rootfilesystem."
            elif isinstance(e, AptCacheCommitError):
                err = "Failed to commit the AptCache changes."
            elif isinstance(e, AptCacheUpdateError):
                err = "Failed to build the Apt Cache."

            logging.exception(
                "%s\n"
                "Probable cause might be:\n"
                "  - Problems with internet connection\n"
                "  - Broken mirrors\n", err)
        # pylint: disable=broad-except
        except Exception:
            logging.exception("Build failed")
        else:
            if read_maxlevel(self.project.builddir) >= logging.ERROR:
                logging.info("Build finished with Error")
            else:
                logging.info("Build finished successfully")
                success = self.build_done
        finally:
            db.update_project_files(self.project)
            db.reset_busy(self.project.builddir, success)
Ejemplo n.º 2
0
 def execute(self, db):
     success = self.build_failed
     try:
         logging.info("Build SDK started")
         self.project.build_sdk()
     except Exception:
         logging.exception("Build SDK Failed")
     else:
         if read_maxlevel(self.project.builddir) >= logging.ERROR:
             logging.info("Build finished with Error")
         else:
             logging.info("Build finished successfully")
             success = self.build_done
     finally:
         db.update_project_files(self.project)
         db.reset_busy(self.project.builddir, success)
Ejemplo n.º 3
0
 def execute(self, db):
     success = self.build_failed
     try:
         logging.info("APT cache update started")
         with self.project.buildenv:
             self.project.get_rpcaptcache().update()
     except Exception:
         logging.exception("APT cache update failed")
     else:
         if read_maxlevel(self.project.builddir) >= logging.ERROR:
             logging.info("APT cache update finished with Error")
         else:
             logging.info("APT cache update finished successfully")
             success = self.has_changes
     finally:
         db.reset_busy(self.project.builddir, success)
Ejemplo n.º 4
0
 def execute(self, db):
     success = self.build_done
     try:
         logging.info("Updating pbuilder started")
         self.project.update_pbuilder()
     except Exception:
         db.update_project_files(self.project)
         logging.exception("update Pbuilder failed")
     else:
         if read_maxlevel(self.project.builddir) >= logging.ERROR:
             logging.info("Updating Pbuilder finished with Error")
         else:
             logging.info("Updating Pbuilder finished successfully")
             success = self.build_done
     finally:
         db.reset_busy(self.project.builddir, success)
Ejemplo n.º 5
0
 def execute(self, db):
     success = self.build_failed
     try:
         logging.info("Pdebuild started")
         self.project.pdebuild(self.cpuset, self.profile, self.cross)
     # pylint: disable=broad-except
     except Exception:
         logging.exception("Pdebuild failed")
     else:
         if read_maxlevel(self.project.builddir) >= logging.ERROR:
             logging.info("Pdeb finished with Error")
         else:
             logging.info("Pdeb finished successfully")
             success = self.build_done
     finally:
         db.update_project_files(self.project)
         db.reset_busy(self.project.builddir, success)
Ejemplo n.º 6
0
 def execute(self, db):
     success = self.build_failed
     try:
         logging.info("Build CDROMs started")
         self.project.build_cdroms(self.build_bin, self.build_src)
     # pylint: disable=broad-except
     except Exception:
         logging.exception("Build CDROMs failed")
     else:
         if read_maxlevel(self.project.builddir) >= logging.ERROR:
             logging.info("Build finished with Error")
         else:
             logging.info("Build finished successfully")
             success = self.build_done
     finally:
         db.update_project_files(self.project)
         db.reset_busy(self.project.builddir, success)
Ejemplo n.º 7
0
 def execute(self, db):
     success = self.build_failed
     try:
         logging.info("APT update started")
         with self.project.buildenv:
             self.project.get_rpcaptcache().update()
         logging.info("APT update finished, upgrade started")
         self.project.get_rpcaptcache().upgrade()
     # pylint: disable=broad-except
     except Exception:
         logging.exception("APT update & upgrade failed")
     else:
         if read_maxlevel(self.project.builddir) >= logging.ERROR:
             logging.info("APT upgrade finished with Error")
         else:
             logging.info("APT upgrade finished")
             success = self.has_changes
     finally:
         db.reset_busy(self.project.builddir, success)
Ejemplo n.º 8
0
    def execute(self, db):
        success = self.build_failed
        try:
            logging.info("Applying package changes")
            with self.project.buildenv:
                # Commit changes, update full package list and write
                # out new source.xml
                self.project.get_rpcaptcache().commit()
                dump_fullpkgs(self.project.xml, self.project.buildenv.rfs,
                              self.project.get_rpcaptcache())

            sourcexmlpath = path.join(self.project.builddir, "source.xml")
            self.project.xml.xml.write(sourcexmlpath)
        except Exception:
            logging.exception("Applying package changes failed")
        else:
            if read_maxlevel(self.project.builddir) >= logging.ERROR:
                logging.info("Package changes applied with Error")
            else:
                logging.info("Package changes applied successfully")
                succes = self.has_changes
        finally:
            db.reset_busy(self.project.builddir, success)