Example #1
0
    def start(self):
        log.msg("setting build props for revisions")
        self.step_status.setText(self.description)
        changes = self.build.allChanges()
        if not changes:
            return SKIPPED
        from life.models import Push

        when = timeHelper(max(map(lambda c: c.when, changes)))
        loog = self.addLog("stdio")
        loog.addStdout("Timestamps for %s:\n\n" % when)
        revs = self.build.getProperty("revisions")[:]
        for rev in revs:
            branch = self.build.getProperty("%s_branch" % rev)
            if rev == "l10n":
                # l10n repo, append locale to branch
                branch += "/" + self.build.getProperty("locale")
            try:
                q = Push.objects.filter(
                    repository__name=branch, push_date__lte=when, changesets__branch__name=self.hg_branch
                )
                to_set = str(q.order_by("-pk")[0].tip.shortrev)
            except IndexError:
                # no pushes, update to empty repo 000000000000
                to_set = "000000000000"
            self.build.setProperty("%s_revision" % rev, to_set, "Build")
            loog.addStdout("%s: %s\n" % (branch, to_set))
        reactor.callLater(0, self.finished, SUCCESS)
Example #2
0
        def buildStarted(self, builderName, build):
            log.msg("build started on  %s" % builderName)
            builder = Builder.objects.get(master=dbm, name=builderName)
            slave, _ = Slave.objects.get_or_create(name=build.getSlavename())
            ss = modelForSource(dbm, build.getSourceStamp())
            starttime = timeHelper(build.getTimes()[0])
            dbbuild, created = \
                builder.builds.get_or_create(buildnumber=build.getNumber(),
                                             slave=slave,
                                             starttime=starttime,
                                             reason=build.getReason(),
                                             sourcestamp=ss)
            if not created:
                log.msg("%s build %d not created, endtime is %s" %
                        (builderName, build.getNumber(), dbbuild.endtime))
                log.msg("not watch this build, to make sure")
                return
            for key, value, source in build.getProperties().asList():
                dbbuild.setProperty(key, value, source)
            dbbuild.save()
            transaction.commit()

            basedir = os.path.join(build.getBuilder().basedir, '..')

            return BuildReceiver(dbbuild, basedir)
Example #3
0
        def buildStarted(self, builderName, build):
            log.msg("build started on  %s" % builderName)
            builder = Builder.objects.get(master=dbm, name=builderName)
            slave, _ = Slave.objects.get_or_create(name=build.getSlavename())
            ss = modelForSource(dbm, build.getSourceStamp())
            starttime = timeHelper(build.getTimes()[0])
            dbbuild, created = \
                builder.builds.get_or_create(buildnumber=build.getNumber(),
                                             slave=slave,
                                             starttime=starttime,
                                             reason=build.getReason(),
                                             sourcestamp=ss)
            if not created:
                log.msg("%s build %d not created, endtime is %s" %
                        (builderName, build.getNumber(), dbbuild.endtime))
                log.msg("not watch this build, to make sure")
                return
            for key, value, source in build.getProperties().asList():
                dbbuild.setProperty(key, value, source)
            dbbuild.save()
            transaction.commit()

            basedir = os.path.join(build.getBuilder().basedir, '..')

            return BuildReceiver(dbbuild, basedir)
Example #4
0
 def start(self):
     log.msg("setting build props for revisions")
     self.step_status.setText(self.description)
     changes = self.build.allChanges()
     if not changes:
         return SKIPPED
     from life.models import Push
     when = timeHelper(max(map(lambda c: c.when, changes)))
     loog = self.addLog("stdio")
     loog.addStdout("Timestamps for %s:\n\n" % when)
     revs = self.build.getProperty('revisions')[:]
     for rev in revs:
         branch = self.build.getProperty('%s_branch' % rev)
         if rev == 'l10n':
             # l10n repo, append locale to branch
             branch += '/' + self.build.getProperty('locale')
         try:
             q = Push.objects.filter(
                 repository__name=branch,
                 push_date__lte=when,
                 changesets__branch__name=self.hg_branch)
             to_set = str(q.order_by('-pk')[0].tip.shortrev)
         except IndexError:
             # no pushes, update to the requested hg branch
             to_set = self.hg_branch
         self.build.setProperty('%s_revision' % rev, to_set, 'Build')
         loog.addStdout("%s: %s\n" % (branch, to_set))
     reactor.callLater(0, self.finished, SUCCESS)
 def stepStarted(self, build, step):
     self.latestStep = step
     starttime = timeHelper(step.getTimes()[0])
     self.latestDbStep = self.build.steps.create(name=step.getName(),
                                                 starttime=starttime,
                                                 text=step.getText(),
                                                 text2=step.text2)
     return StepReceiver(self.latestDbStep, self.basedir)
Example #6
0
 def stepStarted(self, build, step):
     self.latestStep = step
     self.latestDbStep = self.build.steps.create(name = step.getName(),
                                                 starttime = timeHelper(step.getTimes()[0]),
                                                 text = step.getText(),
                                                 text2 = step.text2)
     transaction.commit()
     return StepReceiver(self.latestDbStep, self.basedir)
Example #7
0
 def buildFinished(self, builderName, build, results):
     log.msg("finished build on %s with %s" % (builderName, str(results)))
     dbbuild = Build.objects.get(builder__name = builderName,
                                 buildnumber = build.getNumber())
     dbbuild.endtime = timeHelper(build.getTimes()[1])
     dbbuild.result = results
     for key, value, source in build.getProperties().asList():
         dbbuild.setProperty(key, value, source)
     dbbuild.save()
     pass
Example #8
0
 def buildFinished(self, builderName, build, results):
     log.msg("finished build on %s with %s" % (builderName, str(results)))
     dbbuild = Build.objects.get(builder__name = builderName,
                                 buildnumber = build.getNumber())
     dbbuild.endtime = timeHelper(build.getTimes()[1])
     dbbuild.result = results
     for key, value, source in build.getProperties().asList():
         dbbuild.setProperty(key, value, source)
     dbbuild.save()
     pass
Example #9
0
 def requestSubmitted(self, request):
     b, created = dbm.builders.get_or_create(name = request.getBuilderName())
     ss = modelForSource(dbm, request.source)
     req = BuildRequest.objects.create(builder = b,
                                       submitTime = timeHelper(request.getSubmitTime()),
                                       sourcestamp = ss)
     transaction.commit()
     def addBuild(build):
         dbbuild = b.builds.get(buildnumber=build.getNumber())
         dbbuild.requests.add(req)
         dbbuild.save()
     request.subscribe(addBuild)
Example #10
0
 def requestSubmitted(self, request):
     b, created = dbm.builders.get_or_create(name = request.getBuilderName())
     ss = modelForSource(dbm, request.source)
     req = BuildRequest.objects.create(builder = b,
                                       submitTime = timeHelper(request.getSubmitTime()),
                                       sourcestamp = ss)
     transaction.commit()
     def addBuild(build):
         dbbuild = b.builds.get(buildnumber=build.getNumber())
         dbbuild.requests.add(req)
         dbbuild.save()
     request.subscribe(addBuild)
Example #11
0
 def stepFinished(self, build, step, results):
     assert step == self.latestStep, "We lost a step somewhere"
     try:
         self.latestStep = None
         self.latestDbStep.endtime = timeHelper(step.getTimes()[1])
         # only the first is the result, the second is text2, ignore that.
         self.latestDbStep.result = results[0]
         self.latestDbStep.text = step.getText()
         self.latestDbStep.text2 = step.text2
         self.latestDbStep.save()
         self.latestDbStep = None
     except Exception, e:
         log.msg(str(e))
Example #12
0
 def stepFinished(self, build, step, results):
     assert step == self.latestStep, "We lost a step somewhere"
     try:
         self.latestStep = None
         self.latestDbStep.endtime = timeHelper(step.getTimes()[1])
         # only the first is the result, the second is text2, ignore that.
         self.latestDbStep.result = results[0]
         self.latestDbStep.text = step.getText()
         self.latestDbStep.text2 = step.text2
         self.latestDbStep.save()
         self.latestDbStep = None
     except Exception, e:
         log.msg(str(e))