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)
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)
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)
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)
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
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)
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))