from buildbot.steps import shell, source import os def buildStepWithDefaultTimeout(klass, default_timeout=75*60): class Step(klass): timeout = default_timeout def __init__(self, *args, **kwargs): kwargs['timeout'] = self.timeout klass.__init__(self, *args, **kwargs) return Step Test = buildStepWithDefaultTimeout(shell.Test) Compile = buildStepWithDefaultTimeout(shell.Compile) ShellCommand = buildStepWithDefaultTimeout(shell.ShellCommand) SVN = buildStepWithDefaultTimeout(source.SVN) class UploadCommand: def initializeForUpload(self): try: try: umask = os.umask(0) os.makedirs(self.getDestinationPath(), 042770) except OSError, e: if e.errno != 17: raise finally: os.umask(umask) def getDestinationPath(self): return "/home/buildresults%s" % (self.getURLPath(), ) def getRemotePath(self): return "buildresults@build.webkit.org:%s" % (self.getDestinationPath(), ) def getURLPath(self): return '/results/%s/%s/' % (self.getBuild().builder.name, self.getBuild().getProperty("buildnumber"), ) def getBuild(self): return self.build def getText(self, cmd, results): return self.getText2(cmd, results) def getText2(self, cmd, results): return ['%s' % (self.getURLPath(), self.name)]