summaryrefslogtreecommitdiffstats
path: root/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:41 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:41 -0800
commit648161bb0edfc3d43db63caed5cc5213bc6cb78f (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit
parenta65af38181ac7d34544586bdb5cd004de93897ad (diff)
downloadexternal_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.zip
external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.gz
external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.bz2
auto import from //depot/cupcake/@135843
Diffstat (limited to 'WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit')
-rw-r--r--WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/__init__.py5
-rw-r--r--WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/auth.py9
-rw-r--r--WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/basesteps.py51
-rw-r--r--WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/builders.py35
-rw-r--r--WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/factories.py70
-rw-r--r--WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/schedulers.py15
-rw-r--r--WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/status.py19
-rw-r--r--WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/steps.py220
8 files changed, 0 insertions, 424 deletions
diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/__init__.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/__init__.py
deleted file mode 100644
index f81fcae..0000000
--- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from webkit import auth, status, builders, schedulers
-reload(auth)
-reload(status)
-reload(builders)
-reload(schedulers)
diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/auth.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/auth.py
deleted file mode 100644
index b182e16..0000000
--- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/auth.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from buildbot.buildslave import BuildSlave
-
-def getSlaveAuthenticationDetails():
- def createBuildSlave((name, password)):
- return BuildSlave(name, password, max_builds=1)
- return map(createBuildSlave, _getSlaveAuthenticationDetails())
-
-def _getSlaveAuthenticationDetails():
- return [("slave-name", "password")]
diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/basesteps.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/basesteps.py
deleted file mode 100644
index 8bba881..0000000
--- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/basesteps.py
+++ /dev/null
@@ -1,51 +0,0 @@
-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 ['<a href="%s">%s</a>' % (self.getURLPath(), self.name)]
-
diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/builders.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/builders.py
deleted file mode 100644
index b4e087e..0000000
--- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/builders.py
+++ /dev/null
@@ -1,35 +0,0 @@
-from webkit.factories import *
-from buildbot import locks
-
-# There are four build slaves that take care of the majority of builds, with two other specialist slaves at Apple
-# Slave 1 isn older G4 PowerMac dedicated to the PLT builds, as it needs extra configuration
-# Slave 2 is a Windows PC dedicated to the Windows builds
-# Slaves 3 and 4 are older G4 PowerMacs with relatively low amounts of RAM which leads to insanely slow leaks tests
-# Slaves 4 and 5 are newer G5 PowerMacs with ATI graphics cards that lead to kernel panics during pixel tests
-
-nonATIPowerPCBuilders = ['apple-slave-%d' % i for i in (3, 4)]
-ATIPowerPCBuilders = ['apple-slave-%d' % i for i in (1, 5, 6)]
-allPowerPCBuilders = nonATIPowerPCBuilders + ATIPowerPCBuilders
-allIntelBuilders = ['bdash-slave-1', 'bdash-slave-2']
-
-_builders = [('post-commit-powerpc-mac-os-x', StandardBuildFactory, allPowerPCBuilders),
- ('post-commit-intel-mac-os-x', StandardBuildFactory, allIntelBuilders),
- ('post-commit-leaks-powerpc-mac-os-x', LeakBuildFactory, allPowerPCBuilders),
- ('post-commit-leaks-intel-mac-os-x', LeakBuildFactory, allIntelBuilders),
-# ('page-layout-test-mac-os-x', PageLoadTestBuildFactory, ['apple-slave-1']),
-# ('post-commit-pixel-powerpc-mac-os-x', PixelTestBuildFactory, nonATIPowerPCBuilders),
- ('post-commit-win32', Win32BuildFactory, ['apple-slave-2']),
- ('post-commit-linux-qt', StandardBuildFactory, ['webtroll-slave-1']),
- ('post-commit-linux-gtk', GtkBuildFactory, ['zecke-slave-1']),
- ('periodic-powerpc-mac-os-x-no-svg', NoSVGBuildFactory, allPowerPCBuilders),
- ('periodic-intel-mac-os-x-coverage', CoverageDataBuildFactory, allIntelBuilders),
- ]
-
-def getBuilders():
- result = []
- for name, factory, slaves in _builders:
- result.append({'name': name,
- 'slavenames': slaves,
- 'builddir': name,
- 'factory': factory()})
- return result
diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/factories.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/factories.py
deleted file mode 100644
index 781375f..0000000
--- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/factories.py
+++ /dev/null
@@ -1,70 +0,0 @@
-from webkit.steps import *
-from buildbot.process import factory
-
-s = factory.s
-
-class BuildFactory(factory.BuildFactory):
- useProgress = False
- def __init__(self):
- factory.BuildFactory.__init__(self, [s(CheckOutSource)])
-
-class StandardBuildFactory(BuildFactory):
- def __init__(self):
- BuildFactory.__init__(self)
- self.steps.append(s(SetConfiguration, configuration="release"))
- self.steps.append(s(self.getCompileStep(), configuration="release"))
- self.steps.append(s(self.getJavaScriptCoreTestStep()))
- self.steps.append(s(LayoutTest))
- self.steps.append(s(UploadLayoutResults))
-# self.steps.append(s(UploadDiskImage))
-
- def getCompileStep(self):
- return CompileWebKit
-
- def getJavaScriptCoreTestStep(self):
- return JavaScriptCoreTest
-
-
-class NoSVGBuildFactory(StandardBuildFactory):
- def getCompileStep(self):
- return CompileWebKitNoSVG
-
-
-class PixelTestBuildFactory(BuildFactory):
- def __init__(self):
- BuildFactory.__init__(self)
- self.steps.append(s(SetConfiguration, configuration="release"))
- self.steps.append(s(CompileWebKit, configuration="release"))
- self.steps.append(s(PixelLayoutTest))
- self.steps.append(s(UploadLayoutResults))
-
-class LeakBuildFactory(BuildFactory):
- def __init__(self):
- BuildFactory.__init__(self)
- self.steps.append(s(SetConfiguration, configuration="debug"))
- self.steps.append(s(CompileWebKit, configuration="debug"))
- self.steps.append(s(JavaScriptCoreTest))
- self.steps.append(s(LeakTest))
- self.steps.append(s(UploadLayoutResults))
-# self.steps.append(s(UploadDiskImage))
-
-class PageLoadTestBuildFactory(BuildFactory):
- def __init__(self):
- BuildFactory.__init__(self)
- self.steps.append(s(CompileWebKit, configuration="release"))
- self.steps.append(s(PageLoadTest))
-
-Win32BuildFactory = StandardBuildFactory
-
-class GtkBuildFactory(StandardBuildFactory):
- def getCompileStep(self):
- return CompileWebKitGtk
-
- def getJavaScriptCoreTestStep(self):
- return JavaScriptCoreTestGtk
-
-class CoverageDataBuildFactory(BuildFactory):
- def __init__(self):
- BuildFactory.__init__(self)
- self.steps.append(s(GenerateCoverageData))
- self.steps.append(s(UploadCoverageData))
diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/schedulers.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/schedulers.py
deleted file mode 100644
index 11f9d41..0000000
--- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/schedulers.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from buildbot.scheduler import Scheduler, Periodic
-
-def getSchedulers(builders):
- builder_names = map(lambda builder: builder['name'], builders)
- post_commit_builders = [name for name in builder_names if name.startswith('post-commit-')] + ['page-layout-test-mac-os-x']
- post_commit_builders = [name for name in post_commit_builders if name in builder_names]
- post_commit_builders.sort()
-
- periodic_builders = [b['name'] for b in builders if b['name'].startswith('periodic-')]
- periodic_builders.sort()
-
- post_commit = Scheduler(name="post-commit", branch=None, treeStableTimer=90, builderNames=post_commit_builders)
- periodic = Periodic("periodic", periodic_builders, 6 * 60 * 60)
-
- return [post_commit, periodic]
diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/status.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/status.py
deleted file mode 100644
index ad5519e..0000000
--- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/status.py
+++ /dev/null
@@ -1,19 +0,0 @@
-from buildbot.status import html, mail, words
-
-web = html.WebStatus(http_port=8010)
-
-allBuildsEmail = mail.MailNotifier(fromaddr="buildbot@webkit.org",
- extraRecipients=["mark+webkit-builds@bdash.net.nz"],
- sendToInterestedUsers=False)
-breakageEmail = mail.MailNotifier(fromaddr="buildbot@webkit.org",
- lookup=mail.Domain("webkit.org"),
- mode="failing")
-
-IRC = words.IRC(host="irc.freenode.net",
- nick="webkit-build",
- channels=["#webkit-build"],
-# announceAllBuilds=True
- )
-
-def getStatusListeners():
- return [web, allBuildsEmail, breakageEmail, IRC]
diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/steps.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/steps.py
deleted file mode 100644
index c1933a3..0000000
--- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/steps.py
+++ /dev/null
@@ -1,220 +0,0 @@
-from webkit.basesteps import ShellCommand, SVN, Test, Compile, UploadCommand
-from buildbot.status.builder import SUCCESS, FAILURE, WARNINGS
-
-class CheckOutSource(SVN):
- svnurl = "http://svn.webkit.org/repository/webkit/trunk"
- mode = "update"
- def __init__(self, *args, **kwargs):
- SVN.__init__(self, svnurl=self.svnurl, mode=self.mode, *args, **kwargs)
-
-class SetConfiguration(ShellCommand):
- command = ["./WebKitTools/Scripts/set-webkit-configuration"]
-
- def __init__(self, *args, **kwargs):
- configuration = kwargs.pop('configuration')
- self.command = self.command + ['--' + configuration]
- self.name = "set-configuration-%s" % (configuration, )
- self.description = ["set configuration %s" % (configuration, )]
- self.descriptionDone = ["set configuration %s" % (configuration, )]
- ShellCommand.__init__(self, *args, **kwargs)
-
-
-class LayoutTest(Test):
- name = "layout-test"
- description = ["layout-tests running"]
- descriptionDone = ["layout-tests"]
- command = ["./WebKitTools/Scripts/run-webkit-tests", "--no-launch-safari", "--no-new-test-results", "--results-directory", "layout-test-results"]
-
- def commandComplete(self, cmd):
- Test.commandComplete(self, cmd)
-
- logText = cmd.logs['stdio'].getText()
- incorrectLayoutLines = [line for line in logText.splitlines() if line.find('had incorrect layout') >= 0 or (line.find('test case') >= 0 and line.find(' crashed') >= 0)]
- if incorrectLayoutLines:
- self.incorrectLayoutLines = incorrectLayoutLines
- else:
- self.incorrectLayoutLines = None
-
- 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 JavaScriptCoreTest(Test):
- name = "jscore-test"
- description = ["jscore-tests running"]
- descriptionDone = ["jscore-tests"]
- command = ["./WebKitTools/Scripts/run-javascriptcore-tests"]
- logfiles = {'results': 'JavaScriptCore/tests/mozilla/actual.html'}
-
- def commandComplete(self, cmd):
- 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 cmd.rc != 0:
- return FAILURE
-
- if self.regressionLine:
- 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 PixelLayoutTest(LayoutTest):
- name = "pixel-layout-test"
- description = ["pixel-layout-tests running"]
- descriptionDone = ["pixel-layout-tests"]
- command = LayoutTest.command + ["--pixel"]
-
-
-class LeakTest(Test):
- name = "leak-test"
- description = ["leak-tests running"]
- descriptionDone = ["leak-tests"]
- command = ["./WebKitTools/Scripts/run-webkit-tests", "--no-launch-safari", "--leaks", "--results-directory", "layout-test-results"]
-
- def commandComplete(self, cmd):
- Test.commandComplete(self, cmd)
-
- logText = cmd.logs['stdio'].getText()
- lines = logText.splitlines()
- self.totalLeakLines = [line for line in lines if line.find('total leaks found!') >= 0]
- self.totalLeakLines += [line for line in lines if line.find('LEAK: ') >= 0]
- self.totalLeakLines = [' '.join(x.split()[1:]) for x in self.totalLeakLines]
- self.totalLeakLines += [line for line in lines if line.find('test case') >= 0 and line.find('crashed') >= 0]
-
-
- def evaluateCommand(self, cmd):
- if cmd.rc != 0:
- return FAILURE
-
- if self.totalLeakLines:
- return FAILURE
-
- return SUCCESS
-
- def getText(self, cmd, results):
- return self.getText2(cmd, results)
-
- def getText2(self, cmd, results):
- if results != SUCCESS and self.totalLeakLines:
- return self.totalLeakLines
- return [self.name]
-
-
-class UploadLayoutResults(UploadCommand, ShellCommand):
- name = "upload-results"
- description = ["uploading results"]
- descriptionDone = ["uploaded-results"]
- command = "echo Disabled for now"
-
- def __init__(self, *args, **kwargs):
- ShellCommand.__init__(self, *args, **kwargs)
-
- def setBuild(self, build):
- ShellCommand.setBuild(self, build)
- self.initializeForUpload()
-
- self.command = '''\
- if [[ -d layout-test-results ]]; then \
- find layout-test-results -type d -print0 | xargs -0 chmod ug+rx; \
- find layout-test-results -type f -print0 | xargs -0 chmod ug+r; \
- rsync -rlvzP --rsync-path="/home/buildresults/bin/rsync" layout-test-results/ %s && rm -rf layout-test-results; \
- fi; \
- CRASH_LOG=~/Library/Logs/CrashReporter/DumpRenderTree*.crash*; \
- if [[ -f $(ls -1 $CRASH_LOG | head -n 1 ) ]]; then \
- chmod ug+r $CRASH_LOG; \
- rsync -rlvzP --rsync-path="/home/buildresults/bin/rsync" $CRASH_LOG %s && rm -rf $CRASH_LOG; \
- fi;''' % (self.getRemotePath(), self.getRemotePath())
-
- self.addFactoryArguments(command=self.command)
-
-
-class CompileWebKit(Compile):
- command = ["./WebKitTools/Scripts/build-webkit", "--no-color"]
- env = {'WEBKITSUPPORTLIBRARIESZIPDIR': 'C:\\cygwin\\home\\buildbot'}
- def __init__(self, *args, **kwargs):
- configuration = kwargs.pop('configuration')
-
- self.name = "compile-" + configuration
- self.description = ["compiling " + configuration]
- self.descriptionDone = ["compiled " + configuration]
-
- Compile.__init__(self, *args, **kwargs)
-
-
-class CompileWebKitNoSVG(CompileWebKit):
- command = 'rm -rf WebKitBuild && ./WebKitTools/Scripts/build-webkit --no-svg --no-color'
-
-class CompileWebKitGtk(CompileWebKit):
- command = CompileWebKit.command + ['--gtk']
-
-class JavaScriptCoreTestGtk(JavaScriptCoreTest):
- command = JavaScriptCoreTest.command + ['--gtk']
-
-class InstallWin32Dependencies(ShellCommand):
- description = ["installing Windows dependencies"]
- descriptionDone = ["installed Windows dependencies"]
- command = ["WebKitTools/Scripts/update-webkit-auxiliary-libs"]
-
-
-# class UploadDiskImage(UploadCommand, ShellCommand):
-# description = ["uploading disk image"]
-# descriptionDone = ["uploaded disk image"]
-# name = "upload-disk-image"
-
-# def __init__(self, *args, **kwargs):
-# UploadCommand.__init__(self, *args, **kwargs)
-# self.command = 'umask 002 && ./WebKitTools/BuildSlaveSupport/build-launcher-app && ./WebKitTools/BuildSlaveSupport/build-launcher-dmg --upload-to-host %s' % (self.getRemotePath(), )
-# ShellCommand.__init__(self, *args, **kwargs)
-
-class GenerateCoverageData(Compile):
- command = ["./WebKitTools/Scripts/generate-coverage-data"]
- description = ["generating coverage data"]
- descriptionDone = ["generated coverage data"]
-
-
-class UploadCoverageData(UploadCommand, ShellCommand):
- name = "upload-coverage-data"
- description = ["uploading coverage data"]
- descriptionDone = ["uploaded-coverage-data"]
- command = "echo Disabled for now"
-
- def __init__(self, *args, **kwargs):
- ShellCommand.__init__(self, *args, **kwargs)
-
- def setBuild(self, build):
- ShellCommand.setBuild(self, build)
- self.initializeForUpload()
-
- self.command = '''\
- if [[ -d WebKitBuild/Coverage/html ]]; then \
- find WebKitBuild/Coverage/html -type d -print0 | xargs -0 chmod ug+rx; \
- find WebKitBuild/Coverage/html -type f -print0 | xargs -0 chmod ug+r; \
- rsync -rlvzP --rsync-path="/home/buildresults/bin/rsync" WebKitBuild/Coverage/html/ %s && rm -rf WebKitBuild/Coverage/html; \
- fi;''' % (self.getRemotePath(), )
-
- self.addFactoryArguments(command=self.command)
-
- def getURLPath(self):
- return "/results/code-coverage/"