Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Unified Diff: master.tryserver.webkit/master.cfg

Issue 5329006: Delete obsolete masters from tools/buildbot (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/buildbot/
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « master.tryserver.webkit/config.json ('k') | master.tryserver.webkit/passwords.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: master.tryserver.webkit/master.cfg
===================================================================
--- master.tryserver.webkit/master.cfg (revision 67605)
+++ master.tryserver.webkit/master.cfg (working copy)
@@ -1,455 +0,0 @@
-# -*- python -*-
-# ex: set syntax=python:
-
-# These modules come from scripts/master, which must be in the PYTHONPATH.
-# TODO(maruel): Upstream these to make it webkit.org-friendly.
-from builders_pools import BuildersPools
-from try_job_http import TryJobHTTP
-from try_mail_notifier import TryMailNotifier
-#from try_job_svn import TryJobSubversion
-
-
-c = BuildmasterConfig = {}
-
-from buildbot.buildslave import BuildSlave
-from buildbot.changes.pb import PBChangeSource
-from buildbot.scheduler import AnyBranchScheduler, Triggerable
-from buildbot.status import html
-from buildbot.process import buildstep, factory, properties
-from buildbot.steps import master, shell, source, transfer, trigger
-from buildbot.status.builder import SUCCESS, FAILURE, WARNINGS, SKIPPED
-
-from twisted.internet import defer
-
-import re
-import simplejson
-
-WithProperties = properties.WithProperties
-
-class ConfigureBuild(buildstep.BuildStep):
- name = "configure build"
- description = ["configuring build"]
- descriptionDone = ["configured build"]
- def __init__(self, platform, configuration, architecture, buildOnly, *args, **kwargs):
- buildstep.BuildStep.__init__(self, *args, **kwargs)
- self.platform = platform.split('-', 1)[0]
- self.fullPlatform = platform
- self.configuration = configuration
- self.architecture = architecture
- self.buildOnly = buildOnly
- self.addFactoryArguments(platform=platform, configuration=configuration, architecture=architecture, buildOnly=buildOnly)
-
- def start(self):
- self.setProperty("platform", self.platform)
- self.setProperty("fullPlatform", self.fullPlatform)
- self.setProperty("configuration", self.configuration)
- self.setProperty("architecture", self.architecture)
- self.setProperty("buildOnly", self.buildOnly)
- self.finished(SUCCESS)
- return defer.succeed(None)
-
-
-class CheckOutSource(source.SVN):
- baseURL = "http://svn.webkit.org/repository/webkit/"
- mode = "update"
- def __init__(self, *args, **kwargs):
- source.SVN.__init__(self, baseURL=self.baseURL, defaultBranch="trunk", mode=self.mode, *args, **kwargs)
-
-
-class InstallWin32Dependencies(shell.Compile):
- description = ["installing dependencies"]
- descriptionDone = ["installed dependencies"]
- command = ["perl", "./WebKitTools/Scripts/update-webkit-auxiliary-libs"]
-
-
-class InstallChromiumDependencies(shell.ShellCommand):
- name = "gclient"
- description = ["updating chromium dependencies"]
- descriptionDone = ["updated chromium dependencies"]
- command = ["perl", "./WebKitTools/Scripts/update-webkit-chromium"]
- haltOnFailure = True
-
-
-def appendCustomBuildFlags(step, platform):
- if platform in ('gtk', 'wx', 'qt', 'chromium'):
- step.setCommand(step.command + ['--' + platform])
-
-
-class CompileWebKit(shell.Compile):
- command = ["perl", "./WebKitTools/Scripts/build-webkit", WithProperties("--%(configuration)s")]
- env = {'MFLAGS':''}
- name = "compile-webkit"
- description = ["compiling"]
- descriptionDone = ["compiled"]
- warningPattern = ".*arning: .*"
-
- def start(self):
- platform = self.getProperty('platform')
- buildOnly = self.getProperty('buildOnly')
- if platform == 'mac' and buildOnly:
- self.setCommand(self.command + ['DEBUG_INFORMATION_FORMAT=dwarf-with-dsym'])
-
- appendCustomBuildFlags(self, platform)
- return shell.Compile.start(self)
-
-
-class ArchiveBuiltProduct(shell.ShellCommand):
- command = ["python", "./WebKitTools/BuildSlaveSupport/built-product-archive",
- WithProperties("--platform=%(platform)s"), WithProperties("--%(configuration)s"), "archive"]
- name = "archive-built-product"
- description = ["archiving built product"]
- descriptionDone = ["archived built product"]
- haltOnFailure = True
-
-
-class ExtractBuiltProduct(shell.ShellCommand):
- command = ["python", "./WebKitTools/BuildSlaveSupport/built-product-archive",
- WithProperties("--platform=%(platform)s"), WithProperties("--%(configuration)s"), "extract"]
- name = "extract-built-product"
- description = ["extracting built product"]
- descriptionDone = ["extracted built product"]
- haltOnFailure = True
-
-
-class UploadBuiltProduct(transfer.FileUpload):
- slavesrc = WithProperties("WebKitBuild/%(configuration)s.zip")
- masterdest = WithProperties("archives/%(fullPlatform)s-%(architecture)s-%(configuration)s/%(got_revision)s.zip")
- haltOnFailure = True
-
- def __init__(self):
- transfer.FileUpload.__init__(self, self.slavesrc, self.masterdest)
-
-
-class DownloadBuiltProduct(transfer.FileDownload):
- slavedest = WithProperties("WebKitBuild/%(configuration)s.zip")
- mastersrc = WithProperties("archives/%(fullPlatform)s-%(architecture)s-%(configuration)s/%(got_revision)s.zip")
- haltOnFailure = True
-
- def __init__(self):
- transfer.FileDownload.__init__(self, self.mastersrc, self.slavedest)
-
-
-class RunJavaScriptCoreTests(shell.Test):
- name = "jscore-test"
- description = ["jscore-tests running"]
- descriptionDone = ["jscore-tests"]
- command = ["perl", "./WebKitTools/Scripts/run-javascriptcore-tests", WithProperties("--%(configuration)s")]
- logfiles = {'results': 'JavaScriptCore/tests/mozilla/actual.html'}
-
- def __init__(self, skipBuild=False, *args, **kwargs):
- self.skipBuild = skipBuild
- shell.Test.__init__(self, *args, **kwargs)
- self.addFactoryArguments(skipBuild=skipBuild)
-
- def start(self):
- appendCustomBuildFlags(self, self.getProperty('platform'))
- if self.skipBuild:
- self.setCommand(self.command + ['--skip-build'])
- return shell.Test.start(self)
-
- def commandComplete(self, cmd):
- shell.Test.commandComplete(self, cmd)
-
- logText = cmd.logs['stdio'].getText()
- statusLines = [line for line in logText.splitlines() if line.find('regression') >= 0 and line.find(' found.') >= 0]
- if statusLines and statusLines[0].split()[0] != '0':
- self.regressionLine = statusLines[0]
- else:
- self.regressionLine = None
-
- def evaluateCommand(self, cmd):
- if self.regressionLine:
- return FAILURE
-
- if cmd.rc != 0:
- return FAILURE
-
- return SUCCESS
-
- def getText(self, cmd, results):
- return self.getText2(cmd, results)
-
- def getText2(self, cmd, results):
- if results != SUCCESS and self.regressionLine:
- return [self.name, self.regressionLine]
-
- return [self.name]
-
-
-class RunWebKitTests(shell.Test):
- name = "layout-test"
- description = ["layout-tests running"]
- descriptionDone = ["layout-tests"]
- command = ["perl", "./WebKitTools/Scripts/run-webkit-tests", "--no-launch-safari", "--no-new-test-results",
- "--no-sample-on-timeout", "--results-directory", "layout-test-results", "--use-remote-links-to-tests",
- WithProperties("--%(configuration)s"), "--exit-after-n-failures", "20"]
-
- def __init__(self, skipBuild=False, *args, **kwargs):
- self.skipBuild = skipBuild
- shell.Test.__init__(self, *args, **kwargs)
- self.addFactoryArguments(skipBuild=skipBuild)
-
- def start(self):
- appendCustomBuildFlags(self, self.getProperty('platform'))
- if self.skipBuild:
- self.setCommand(self.command + ['--root=WebKitBuild/bin'])
- return shell.Test.start(self)
-
- def commandComplete(self, cmd):
- shell.Test.commandComplete(self, cmd)
-
- logText = cmd.logs['stdio'].getText()
- incorrectLayoutLines = []
- for line in logText.splitlines():
- if line.find('had incorrect layout') >= 0 or line.find('were new') >= 0 or line.find('was new') >= 0:
- incorrectLayoutLines.append(line)
- elif line.find('test case') >= 0 and (line.find(' crashed') >= 0 or line.find(' timed out') >= 0):
- incorrectLayoutLines.append(line)
- elif line.startswith("WARNING:") and line.find(' leak') >= 0:
- incorrectLayoutLines.append(line.replace('WARNING: ', ''))
- elif line.find('Exiting early') >= 0:
- incorrectLayoutLines.append(line)
-
- # FIXME: Detect and summarize leaks of RefCounted objects
-
- self.incorrectLayoutLines = incorrectLayoutLines
-
- def evaluateCommand(self, cmd):
- if self.incorrectLayoutLines:
- if len(self.incorrectLayoutLines) == 1:
- line = self.incorrectLayoutLines[0]
- if line.find('were new') >= 0 or line.find('was new') >= 0 or line.find(' leak') >= 0:
- return WARNINGS
-
- return FAILURE
-
- if cmd.rc != 0:
- return FAILURE
-
- return SUCCESS
-
- def getText(self, cmd, results):
- return self.getText2(cmd, results)
-
- def getText2(self, cmd, results):
- if results != SUCCESS and self.incorrectLayoutLines:
- return self.incorrectLayoutLines
-
- return [self.name]
-
-
-class RunWebKitLeakTests(RunWebKitTests):
- def start(self):
- self.setCommand(self.command + ["--leaks"])
- return RunWebKitTests.start(self)
-
-
-class ArchiveTestResults(shell.ShellCommand):
- command = ["python", "./WebKitTools/BuildSlaveSupport/test-result-archive",
- WithProperties("--platform=%(platform)s"), WithProperties("--%(configuration)s"), "archive"]
- name = "archive-test-results"
- description = ["archiving test results"]
- descriptionDone = ["archived test results"]
- haltOnFailure = True
-
-
-class UploadTestResults(transfer.FileUpload):
- slavesrc = "layout-test-results.zip"
- masterdest = WithProperties("public_html/results/%(buildername)s/r%(got_revision)s (%(buildnumber)s).zip")
-
- def __init__(self):
- transfer.FileUpload.__init__(self, self.slavesrc, self.masterdest)
-
-
-class ExtractTestResults(master.MasterShellCommand):
- zipFile = WithProperties("public_html/results/%(buildername)s/r%(got_revision)s (%(buildnumber)s).zip")
- resultDirectory = WithProperties("public_html/results/%(buildername)s/r%(got_revision)s (%(buildnumber)s)")
-
- def __init__(self):
- master.MasterShellCommand.__init__(self, "")
-
- def start(self):
- self.command = ["ditto", "-k", "-x", "-V", self.build.getProperties().render(self.zipFile), self.build.getProperties().render(self.resultDirectory)]
- return master.MasterShellCommand.start(self)
-
- def finished(self, result):
- url = self.build.getProperties().render(self.resultDirectory).replace("public_html/", "")
- self.addURL("view results", url)
- result = master.MasterShellCommand.finished(self, result)
- self.step_status.setText(["uploaded results"])
- return result
-
-
-class Factory(factory.BuildFactory):
- def __init__(self, platform, configuration, architectures, buildOnly):
- factory.BuildFactory.__init__(self)
- self.addStep(ConfigureBuild, platform=platform, configuration=configuration, architecture=" ".join(architectures), buildOnly=buildOnly)
- self.addStep(CheckOutSource)
- if platform == "win":
- self.addStep(InstallWin32Dependencies)
- if platform == "chromium":
- self.addStep(InstallChromiumDependencies)
-
-class BuildFactory(Factory):
- def __init__(self, platform, configuration, architectures, triggers=None):
- Factory.__init__(self, platform, configuration, architectures, True)
- self.addStep(CompileWebKit)
- if triggers:
- self.addStep(ArchiveBuiltProduct)
- self.addStep(UploadBuiltProduct)
- self.addStep(trigger.Trigger, schedulerNames=triggers)
-
-class TestFactory(Factory):
- def __init__(self, platform, configuration, architectures):
- Factory.__init__(self, platform, configuration, architectures, False)
- self.addStep(DownloadBuiltProduct)
- self.addStep(ExtractBuiltProduct)
- self.addStep(RunJavaScriptCoreTests, skipBuild=True)
- self.addStep(RunWebKitTests, skipBuild=(platform == 'win'))
- self.addStep(ArchiveTestResults)
- self.addStep(UploadTestResults)
- self.addStep(ExtractTestResults)
-
-class BuildAndTestFactory(Factory):
- TestClass = RunWebKitTests
- def __init__(self, platform, configuration, architectures):
- Factory.__init__(self, platform, configuration, architectures, False)
- self.addStep(CompileWebKit)
- self.addStep(RunJavaScriptCoreTests)
- self.addStep(self.TestClass)
- self.addStep(ArchiveTestResults)
- self.addStep(UploadTestResults)
- self.addStep(ExtractTestResults)
-
-class BuildAndTestLeaksFactory(BuildAndTestFactory):
- TestClass = RunWebKitLeakTests
-
-
-class TryFactory(Factory):
- """Similar to BuildAndTestFactory but doesn't archive the results."""
- TestClass = RunWebKitTests
- def __init__(self, platform, configuration, architectures):
- Factory.__init__(self, platform, configuration, architectures, False)
- self.addStep(CompileWebKit)
- self.addStep(RunJavaScriptCoreTests)
- self.addStep(self.TestClass)
-
-
-class TryBuildFactory(BuildFactory):
- """Same as BuildFactory."""
- pass
-
-
-class TryLeaksFactory(TryFactory):
- TestClass = RunWebKitLeakTests
-
-
-def convertToString(json_data):
- """Converts unicode strings to ascii strings in dictionaries and lists.
-
- Some simplejson version will always return unicode strings. Python
- doesn't accept unicode strings as dictionary key for kwargs so convert
- them."""
- if isinstance(json_data, dict):
- retval = {}
- for (k,v) in json_data.iteritems():
- retval[str(k)] = convertToString(v)
- return retval
- elif isinstance(json_data, list):
- retval = []
- for i in json_data:
- retval.append(convertToString(i))
- return retval
- elif isinstance(json_data, unicode):
- return str(json_data)
- else:
- return json_data
-
-
-def loadBuilderConfig(c, config_file, passwords_file):
- passwords = convertToString(simplejson.load(open(passwords_file)))
-
- config = convertToString(simplejson.load(open(config_file)))
-
- c['slaves'] = [BuildSlave(slave['name'], passwords[slave['name']], max_builds=1) for slave in config['slaves']]
-
- c['schedulers'] = []
- for scheduler in config['schedulers']:
- kls = globals()[scheduler.pop('type')]
- c['schedulers'].append(kls(**scheduler))
-
- c['builders'] = []
- for builder in config['builders']:
- for slaveName in builder['slavenames']:
- for slave in config['slaves']:
- if slave['name'] != slaveName or slave['platform'] == '*':
- continue
-
- if slave['platform'] != builder['platform']:
- raise Exception, "Builder %r is for platform %r but has slave %r for platform %r!" % (builder['name'], builder['platform'], slave['name'], slave['platform'])
-
- break
-
- factory = globals()["%sFactory" % builder.pop('type')]
- factoryArgs = []
- for key in "platform", "configuration", "architectures", "triggers":
- value = builder.pop(key, None)
- if value:
- factoryArgs.append(value)
-
- builder["factory"] = factory(*factoryArgs)
-
- c['builders'].append(builder)
-
-
-loadBuilderConfig(c, 'config.json', 'passwords.json')
-
-c['change_source'] = PBChangeSource()
-pools = BuildersPools('webkit')
-#pools['webkit'].append("Try Apple Leopard Intel Release")
-pools['webkit'].append("Try Apple Leopard Intel Debug")
-#pools['webkit'].append("Try Apple SnowLeopard Intel Release")
-#pools['webkit'].append("Try Apple SnowLeopard Intel Leaks")
-#pools['webkit'].append("Try Apple Windows Release")
-pools['webkit'].append("Try Apple Windows Debug")
-#pools['webkit'].append("Try GTK Linux Release")
-#pools['webkit'].append("Try Qt Linux Release")
-pools['webkit'].append("Try Chromium Win Release")
-pools['webkit'].append("Try Chromium Mac Release")
-pools['webkit'].append("Try Chromium Linux Release")
-c['schedulers'].append(TryJobHTTP(
- name='try_job_http',
- port=8017,
- pools=pools))
-
-c['status'] = []
-c['status'].append(html.WebStatus(http_port=8010, allowForce=True))
-c['status'].append(html.WebStatus(http_port=8044, allowForce=False))
-
-def GetSmtp():
- # TODO(maruel): Remove me.
- import chromium_config_private
- return chromium_config_private.Master.smtp
-
-c['status'].append(TryMailNotifier(
- fromaddr='tryserver@chromium.org',
- subject="try %(result)s for %(reason)s on %(builder)s @ r%(revision)s",
- mode='all',
- relayhost=GetSmtp(),
- lookup=''))
-
-
-c['slavePortnum'] = 8031
-c['projectName'] = "WebKit"
-c['projectURL'] = "http://webkit.org"
-c['buildbotURL'] = "http://build.chromium.org/buildbot/webkit-try/"
-
-# Keep last try jobs, the default is too low. Must keep at least a few days
-# worth of try jobs.
-c['buildHorizon'] = 3000
-c['logHorizon'] = 3000
-# Must be at least 2x the number of slaves.
-c['eventHorizon'] = 200
-# Must be at least 2x the number of on-going builds.
-c['buildCacheSize'] = 200
-
« no previous file with comments | « master.tryserver.webkit/config.json ('k') | master.tryserver.webkit/passwords.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698