2006-10-31 Mark Rowe <bdash@webkit.org>
authorbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 1 Nov 2006 03:11:46 +0000 (03:11 +0000)
committerbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 1 Nov 2006 03:11:46 +0000 (03:11 +0000)
        Reviewed by Stephanie.

        Limit build slaves to a single build to prevent concurrent builds on a single slave from significantly increasing build time.

        * BuildSlaveSupport/build.webkit.org-config/webkit/builders.py: Adjust slave distribution, and make use of a SlaveLock.
        * BuildSlaveSupport/build.webkit.org-config/webkit/factories.py: Remove unused Qt build factory.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17510 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/builders.py
WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/factories.py
WebKitTools/ChangeLog

index 70eb20e02f1b681464bf722d0f67e09b8580e341..2870445e8238ca51a4a4793293655c63c716333b 100644 (file)
@@ -1,19 +1,32 @@
 from webkit.factories import *
+from buildbot import locks
 
-_builders = [('post-commit-powerpc-mac-os-x', StandardBuildFactory, ['apple-slave-6', 'apple-slave-5']),
-             ('post-commit-leaks-powerpc-mac-os-x', LeakBuildFactory, ['apple-slave-5', 'apple-slave-6']),
+# 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 (5, 6)]
+allPowerPCBuilders = nonATIPowerPCBuilders + ATIPowerPCBuilders
+
+_builders = [('post-commit-powerpc-mac-os-x', StandardBuildFactory, allPowerPCBuilders),
+             ('post-commit-leaks-powerpc-mac-os-x', LeakBuildFactory, ATIPowerPCBuilders),
              ('page-layout-test-mac-os-x', PageLoadTestBuildFactory, ['apple-slave-1']),
-             ('post-commit-pixel-powerpc-mac-os-x', PixelTestBuildFactory, ['apple-slave-3', 'apple-slave-4']),
+             ('post-commit-pixel-powerpc-mac-os-x', PixelTestBuildFactory, nonATIPowerPCBuilders),
              ('post-commit-win32', Win32BuildFactory, ['apple-slave-2']),
-             ('periodic-powerpc-mac-os-x-no-svg', NoSVGBuildFactory, ['apple-slave-4', 'apple-slave-3']),
-             ('post-commit-linux-qt', QtBuildFactory, ['wildfox-slave-1']),
+             ('periodic-powerpc-mac-os-x-no-svg', NoSVGBuildFactory, allPowerPCBuilders),
+             ('post-commit-linux-qt', StandardBuildFactory, ['wildfox-slave-1']),
              ]
 
 def getBuilders():
     result = []
+    oneBuildPerSlave = locks.SlaveLock('one-build-per-slave')
     for name, factory, slaves in _builders:
         result.append({'name': name,
                        'slavenames': slaves,
                        'builddir': name,
+                       'locks': [oneBuildPerSlave],
                        'factory': factory()})
     return result
index 8a6d4f27eaa69773f4ff685db8f24817413f73f5..05ec90c61e1d46c065b3ced4ce2717e51000d107 100644 (file)
@@ -58,10 +58,3 @@ class Win32BuildFactory(BuildFactory):
         self.steps.append(s(CompileWebKit, configuration="release"))
         self.steps.append(s(JavaScriptCoreTest))
         self.steps.append(s(LayoutTest))
-
-class QtBuildFactory(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(JavaScriptCoreTest))
index 98be77cb204f23c1e9dd6b52a594dd9c7ceaef3f..8a8147adabe5d0e4e7a699c6463da3c00a025808 100644 (file)
@@ -1,3 +1,12 @@
+2006-10-31  Mark Rowe  <bdash@webkit.org>
+
+        Reviewed by Stephanie.
+
+        Limit build slaves to a single build to prevent concurrent builds on a single slave from significantly increasing build time.
+
+        * BuildSlaveSupport/build.webkit.org-config/webkit/builders.py: Adjust slave distribution, and make use of a SlaveLock.
+        * BuildSlaveSupport/build.webkit.org-config/webkit/factories.py: Remove unused Qt build factory.
+
 2006-10-31  Darin Adler  <darin@apple.com>
 
         * DumpRenderTree/DumpRenderTree.m: Instead of allocating a single local