Changeset 128399 in webkit
- Timestamp:
- Sep 12, 2012 9:18:43 PM (12 years ago)
- Location:
- trunk/Tools
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/config.json
r128381 r128399 201 201 "name": "Qt Linux Release", "type": "BuildAndTest", "builddir": "qt-linux-release", 202 202 "platform": "qt-4.8", "configuration": "release", "architectures": ["i386"], 203 "SVNMirror": "svn://rain.inf.u-szeged.hu/", 203 204 "slavenames": ["szeged-linux-1"] 204 205 }, 205 206 { 206 207 "name": "Qt Linux Release minimal", "type": "Build", "builddir": "qt-linux-release-minimal", 208 "SVNMirror": "svn://rain.inf.u-szeged.hu/", 207 209 "platform": "qt-4.8", "configuration": "release", "architectures": ["i386"], 208 210 "slavenames": ["szeged-linux-2"] … … 210 212 { 211 213 "name": "Qt Linux 64-bit Release (Perf)", "type": "BuildAndPerfTest", "builddir": "qt-linux-64-release-perf-tests", 214 "SVNMirror": "svn://rain.inf.u-szeged.hu/", 212 215 "platform": "qt-5.0-wk1", "configuration": "release", "architectures": ["x86_64"], 213 216 "slavenames": ["szeged-linux-3"] … … 215 218 { 216 219 "name": "Qt Linux 64-bit Release (WebKit2 Perf)", "type": "BuildAndPerfTestWebKit2", "builddir": "qt-linux-64-release-wk2-perf-tests", 220 "SVNMirror": "svn://rain.inf.u-szeged.hu/", 217 221 "platform": "qt-5.0-wk2", "configuration": "release", "architectures": ["x86_64"], 218 222 "slavenames": ["szeged-linux-5"] … … 220 224 { 221 225 "name": "Qt Linux ARMv7 Release", "type": "Build", "builddir": "qt-linux-armv7-release", 226 "SVNMirror": "svn://rain.inf.u-szeged.hu:3389/", 222 227 "platform": "qt-arm", "configuration": "release", "architectures": ["armv7"], 223 228 "slavenames": ["szeged-linux-4"] … … 225 230 { 226 231 "name": "Qt Windows 32-bit Release", "type": "Build", "builddir": "qt-windows-32bit-release", 232 "SVNMirror": "svn://rain.inf.u-szeged.hu/", 227 233 "platform": "qt-win", "configuration": "release", "architectures": ["i386"], 228 234 "slavenames": ["szeged-windows-1"] … … 230 236 { 231 237 "name": "Qt Windows 32-bit Debug", "type": "Build", "builddir": "qt-windows-32bit-debug", 238 "SVNMirror": "svn://rain.inf.u-szeged.hu/", 232 239 "platform": "qt-win", "configuration": "debug", "architectures": ["i386"], 233 240 "slavenames": ["szeged-windows-2"] -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg
r127104 r128399 93 93 description = ["configuring build"] 94 94 descriptionDone = ["configured build"] 95 def __init__(self, platform, configuration, architecture, buildOnly, *args, **kwargs):95 def __init__(self, platform, configuration, architecture, buildOnly, SVNMirror, *args, **kwargs): 96 96 buildstep.BuildStep.__init__(self, *args, **kwargs) 97 97 self.platform = platform.split('-', 1)[0] … … 100 100 self.architecture = architecture 101 101 self.buildOnly = buildOnly 102 self.addFactoryArguments(platform=platform, configuration=configuration, architecture=architecture, buildOnly=buildOnly) 102 self.SVNMirror = SVNMirror 103 self.addFactoryArguments(platform=platform, configuration=configuration, architecture=architecture, buildOnly=buildOnly, SVNMirror=SVNMirror) 103 104 104 105 def start(self): … … 109 110 self.setProperty("buildOnly", self.buildOnly) 110 111 self.setProperty("shouldAbortEarly", True) 112 self.setProperty("SVNMirror", self.SVNMirror) 111 113 self.finished(SUCCESS) 112 114 return defer.succeed(None) … … 114 116 115 117 class CheckOutSource(source.SVN): 116 baseURL = "http://svn.webkit.org/repository/webkit/"117 118 mode = "update" 118 def __init__(self, **kwargs):119 kwargs['baseURL'] = self.baseURL119 def __init__(self, SVNMirror, **kwargs): 120 kwargs['baseURL'] = SVNMirror or "http://svn.webkit.org/repository/webkit/" 120 121 kwargs['defaultBranch'] = "trunk" 121 122 kwargs['mode'] = self.mode 122 123 source.SVN.__init__(self, **kwargs) 123 124 124 self.addFactoryArguments(SVNMirror=SVNMirror) 125 126 class WaitForSVNServer(shell.ShellCommand): 127 name = "wait-for-svn-server" 128 command = ["python", "./Tools/BuildSlaveSupport/wait-for-SVN-server.py", "-r", WithProperties("%(revision)s"), "-s", WithProperties("%(SVNMirror)s")] 129 description = ["waiting for SVN server"] 130 descriptionDone = ["SVN server is ready"] 131 haltOnFailure = True 125 132 126 133 class InstallWin32Dependencies(shell.Compile): … … 698 705 699 706 class Factory(factory.BuildFactory): 700 def __init__(self, platform, configuration, architectures, buildOnly ):707 def __init__(self, platform, configuration, architectures, buildOnly, SVNMirror): 701 708 factory.BuildFactory.__init__(self) 702 self.addStep(ConfigureBuild(platform=platform, configuration=configuration, architecture=" ".join(architectures), buildOnly=buildOnly)) 703 self.addStep(CheckOutSource()) 709 self.addStep(ConfigureBuild(platform=platform, configuration=configuration, architecture=" ".join(architectures), buildOnly=buildOnly, SVNMirror=SVNMirror)) 710 if SVNMirror: 711 self.addStep(WaitForSVNServer()) 712 self.addStep(CheckOutSource(SVNMirror=SVNMirror)) 704 713 # There are multiple Qt slaves running on same machines, so buildslaves shouldn't kill the processes of other slaves. 705 714 if not platform.startswith("qt"): … … 716 725 717 726 class BuildFactory(Factory): 718 def __init__(self, platform, configuration, architectures, triggers=None ):719 Factory.__init__(self, platform, configuration, architectures, True )727 def __init__(self, platform, configuration, architectures, triggers=None, SVNMirror=None): 728 Factory.__init__(self, platform, configuration, architectures, True, SVNMirror) 720 729 self.addStep(CompileWebKit()) 721 730 if triggers: … … 735 744 TestClass = RunWebKitTests 736 745 ExtractTestResultsClass = ExtractTestResults 737 def __init__(self, platform, configuration, architectures ):738 Factory.__init__(self, platform, configuration, architectures, False )746 def __init__(self, platform, configuration, architectures, SVNMirror=None): 747 Factory.__init__(self, platform, configuration, architectures, False, SVNMirror) 739 748 if platform.startswith("chromium"): 740 749 self.addStep(CleanupChromiumCrashLogs()) … … 768 777 TestClass = RunWebKitTests 769 778 ExtractTestResultsClass = ExtractTestResults 770 def __init__(self, platform, configuration, architectures, triggers=None, **kwargs):771 Factory.__init__(self, platform, configuration, architectures, False, **kwargs)779 def __init__(self, platform, configuration, architectures, triggers=None, SVNMirror=None, **kwargs): 780 Factory.__init__(self, platform, configuration, architectures, False, SVNMirror, **kwargs) 772 781 if platform.startswith("chromium"): 773 782 self.addStep(CleanupChromiumCrashLogs) … … 812 821 813 822 class BuildAndPerfTestFactory(Factory): 814 def __init__(self, platform, configuration, architectures, **kwargs):815 Factory.__init__(self, platform, configuration, architectures, False, **kwargs)823 def __init__(self, platform, configuration, architectures, SVNMirror=None, **kwargs): 824 Factory.__init__(self, platform, configuration, architectures, False, SVNMirror, **kwargs) 816 825 if platform.startswith("chromium"): 817 826 self.addStep(CleanupChromiumCrashLogs) … … 820 829 821 830 class BuildAndPerfTestWebKit2Factory(Factory): 822 def __init__(self, platform, configuration, architectures, **kwargs):823 Factory.__init__(self, platform, configuration, architectures, False, **kwargs)831 def __init__(self, platform, configuration, architectures, SVNMirror=None, **kwargs): 832 Factory.__init__(self, platform, configuration, architectures, False, SVNMirror, **kwargs) 824 833 if platform.startswith("chromium"): 825 834 self.addStep(CleanupChromiumCrashLogs) … … 828 837 829 838 class DownloadAndPerfTestFactory(Factory): 830 def __init__(self, platform, configuration, architectures, **kwargs):831 Factory.__init__(self, platform, configuration, architectures, False, **kwargs)839 def __init__(self, platform, configuration, architectures, SVNMirror=None, **kwargs): 840 Factory.__init__(self, platform, configuration, architectures, False, SVNMirror, **kwargs) 832 841 self.addStep(DownloadBuiltProduct()) 833 842 self.addStep(ExtractBuiltProduct()) … … 835 844 836 845 class DownloadAndPerfTestWebKit2Factory(Factory): 837 def __init__(self, platform, configuration, architectures, **kwargs):838 Factory.__init__(self, platform, configuration, architectures, False, **kwargs)846 def __init__(self, platform, configuration, architectures, SVNMirror=None, **kwargs): 847 Factory.__init__(self, platform, configuration, architectures, False, SVNMirror, **kwargs) 839 848 self.addStep(DownloadBuiltProduct) 840 849 self.addStep(ExtractBuiltProduct) … … 903 912 builderType = builder.pop('type') 904 913 factory = globals()["%sFactory" % builderType] 905 factory Args = []906 for key in "platform", "configuration", "architectures", "triggers" :914 factorykwargs = {} 915 for key in "platform", "configuration", "architectures", "triggers", "SVNMirror": 907 916 value = builder.pop(key, None) 908 917 if value: 909 factory Args.append(value)910 911 builder["factory"] = factory(* factoryArgs)918 factorykwargs[key] = value 919 920 builder["factory"] = factory(**factorykwargs) 912 921 913 922 if platform.startswith('chromium'): -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py
r125372 r128399 333 333 334 334 335 class SVNMirrorTest(unittest.TestCase): 336 def setUp(self): 337 self.config = json.load(open('config.json')) 338 339 def get_SVNMirrorFromConfig(self, builderName): 340 SVNMirror = None 341 for builder in self.config['builders']: 342 if builder['name'] == builderName: 343 SVNMirror = builder.pop('SVNMirror', 'http://svn.webkit.org/repository/webkit/') 344 return SVNMirror 345 346 def test_CheckOutSource(self): 347 # SVN mirror feature isn't unittestable now with source.oldsource.SVN(==source.SVN) , only with source.svn.SVN(==SVN) 348 # https://bugs.webkit.org/show_bug.cgi?id=85887 349 if issubclass(CheckOutSource, source.SVN): 350 return 351 352 # Compare CheckOutSource.baseURL with SVNMirror (or with the default URL) in config.json for all builders 353 for builder in c['builders']: 354 for buildStepFactory, kwargs in builder['factory'].steps: 355 if str(buildStepFactory).split('.')[-1] == 'CheckOutSource': 356 CheckOutSourceInstance = buildStepFactory(**kwargs) 357 self.assertEquals(CheckOutSourceInstance.baseURL, self.get_SVNMirrorFromConfig(builder['name'])) 358 359 335 360 class BuildStepsConstructorTest(unittest.TestCase): 336 361 # "Passing a BuildStep subclass to factory.addStep is deprecated. Please pass a BuildStep instance instead. Support will be dropped in v0.8.7." -
trunk/Tools/ChangeLog
r128395 r128399 1 2012-09-12 Csaba Osztrogonác <ossy@webkit.org> 2 3 Add SVN mirror handling feature to build.webkit.org 4 https://bugs.webkit.org/show_bug.cgi?id=85887 5 6 Reviewed by Dirk Pranke. 7 8 * BuildSlaveSupport/build.webkit.org-config/config.json: Add SVN mirrors for Qt buildslaves hosted in Szeged. 9 * BuildSlaveSupport/build.webkit.org-config/master.cfg: 10 (ConfigureBuild.__init__): Add SVNMirror property to be able to watch which slaves use which mirror on build.webkit.org. 11 (ConfigureBuild.start): 12 (CheckOutSource.__init__): Set baseURL to the SVNMirror or the default http://svn.webkit.org/repository/webkit/ 13 (WaitForSVNServer): Add new buildstep for waiting the SVNMirror to be in sync with http://svn.webkit.org/repository/webkit/ 14 (Factory.__init__): 15 (BuildFactory.__init__): 16 (TestFactory.__init__): 17 (BuildAndTestFactory.__init__): 18 (BuildAndPerfTestFactory.__init__): 19 (BuildAndPerfTestWebKit2Factory.__init__): 20 (DownloadAndPerfTestFactory.__init__): 21 (DownloadAndPerfTestWebKit2Factory.__init__): 22 (loadBuilderConfig): Use kwargs instead of args to be able to add the optional SVNMirror factory argument. 23 * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: 24 (SVNMirrorTest): 25 (SVNMirrorTest.setUp): Load config.json once at startup. 26 (SVNMirrorTest.get_SVNMirrorFromConfig): Get the SVNMirror from config.json for a given buildslave. 27 (SVNMirrorTest.test_CheckOutSource): Compare CheckOutSource.baseURL with SVNMirror in config.json for all builders 28 * BuildSlaveSupport/build.webkit.org-config/wait-for-SVN-server.py: Added. 29 (getLatestSVNRevision): Get the latest SVN revison from the given server. 30 (waitForSVNRevision): Wait until the given SVN revision is committed to the given server. It doesn't wait if the 31 SVN revision is empty (force build triggered without revision) or the server is unavailable. 32 1 33 2012-09-12 Kangil Han <kangil.han@samsung.com> 2 34
Note: See TracChangeset
for help on using the changeset viewer.