| OLD | NEW |
| (Empty) |
| 1 # -*- python -*- | |
| 2 # ex: set syntax=python: | |
| 3 | |
| 4 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | |
| 5 # Use of this source code is governed by a BSD-style license that can be | |
| 6 # found in the LICENSE file. | |
| 7 | |
| 8 # This is the buildmaster config file for the 'chromium' bot. It must | |
| 9 # be installed as 'master.cfg' in your buildmaster's base directory | |
| 10 # (although the filename can be changed with the --basedir option to | |
| 11 # 'mktap buildbot master'). | |
| 12 | |
| 13 # It has one job: define a dictionary named BuildmasterConfig. This | |
| 14 # dictionary has a variety of keys to control different aspects of the | |
| 15 # buildmaster. They are documented in docs/config.xhtml . | |
| 16 | |
| 17 from buildbot.scheduler import Triggerable | |
| 18 | |
| 19 # Reload all the python files under master and common | |
| 20 import master | |
| 21 reload(master) | |
| 22 import common | |
| 23 reload(common) | |
| 24 | |
| 25 # These modules are beside this configuration file. They should be moved to | |
| 26 # scripts/master. | |
| 27 from builders_pools import BuildersPools | |
| 28 from try_job_http import TryJobHTTP | |
| 29 from try_job_svn import TryJobSubversion | |
| 30 | |
| 31 # These modules come from scripts/master, which must be in the PYTHONPATH. | |
| 32 import chromium_step | |
| 33 import try_job_status_update | |
| 34 from master.factory import commands | |
| 35 from master.factory import gyp_factory | |
| 36 from master.factory import nacl_factory | |
| 37 from master.factory import nacl_sdk_factory | |
| 38 from master.factory import o3d_factory | |
| 39 import master_utils | |
| 40 import slaves_list | |
| 41 | |
| 42 # These modules come from scripts/common, which must be in the PYTHONPATH. | |
| 43 import chromium_config as config | |
| 44 import chromium_utils | |
| 45 | |
| 46 ActiveMaster = config.Master.NativeClientTryServer | |
| 47 | |
| 48 MAIL_NOTIFIER = True | |
| 49 UPDATE_CODEREVIEW = ActiveMaster.is_production_host | |
| 50 | |
| 51 # This is the dictionary that the buildmaster pays attention to. We also use | |
| 52 # a shorter alias to save typing. | |
| 53 c = BuildmasterConfig = {} | |
| 54 | |
| 55 | |
| 56 ####### CHANGESOURCES | |
| 57 | |
| 58 c['change_source'] = [ ] | |
| 59 | |
| 60 | |
| 61 ####### BUILDERS | |
| 62 | |
| 63 c['builders'] = [] | |
| 64 | |
| 65 # FACTORIES | |
| 66 | |
| 67 m_win32 = {} | |
| 68 m_win64 = {} | |
| 69 m_mac = {} | |
| 70 m_linux = {} | |
| 71 m_arm = {} | |
| 72 | |
| 73 m_win32['nacl'] = nacl_factory.NativeClientFactory( | |
| 74 'native_client', 'win32', use_supplement=True).NativeClientFactory | |
| 75 m_win64['nacl'] = nacl_factory.NativeClientFactory( | |
| 76 'native_client', 'win64', use_supplement=True).NativeClientFactory | |
| 77 m_linux['nacl'] = nacl_factory.NativeClientFactory( | |
| 78 'native_client', 'linux2', use_supplement=True).NativeClientFactory | |
| 79 m_mac['nacl'] = nacl_factory.NativeClientFactory( | |
| 80 'native_client', 'darwin', use_supplement=True).NativeClientFactory | |
| 81 m_arm['nacl'] = nacl_factory.NativeClientFactory( | |
| 82 'native_client', 'arm', use_supplement=True).NativeClientFactory | |
| 83 | |
| 84 m_win32['naclsdk'] = nacl_sdk_factory.NativeClientSDKFactory( | |
| 85 'native_client', 'wincyg').NativeClientSDKFactory | |
| 86 m_linux['naclsdk'] = nacl_sdk_factory.NativeClientSDKFactory( | |
| 87 'native_client', 'linux2').NativeClientSDKFactory | |
| 88 m_mac['naclsdk'] = nacl_sdk_factory.NativeClientSDKFactory( | |
| 89 'native_client', 'darwin').NativeClientSDKFactory | |
| 90 | |
| 91 m_win32['gyp'] = gyp_factory.GYPFactory('trunk', | |
| 92 target_platform='win32').GYPFactory | |
| 93 m_mac['gyp'] = gyp_factory.GYPFactory('trunk', | |
| 94 target_platform='darwin').GYPFactory | |
| 95 m_linux['gyp'] = gyp_factory.GYPFactory('trunk', | |
| 96 target_platform='linux2').GYPFactory | |
| 97 | |
| 98 m_win32['o3d'] = o3d_factory.O3DFactory('trunk', | |
| 99 target_platform='win32').O3DFactory | |
| 100 m_mac['o3d'] = o3d_factory.O3DFactory('trunk', | |
| 101 target_platform='darwin').O3DFactory | |
| 102 m_linux['o3d'] = o3d_factory.O3DFactory('trunk', | |
| 103 target_platform='linux2').O3DFactory | |
| 104 | |
| 105 | |
| 106 def CreateBot(platform, password=config.Master.GetBotPassword(), | |
| 107 builder_name=None, target=None, project=None, | |
| 108 tests=None, options=None, mode=None, timeout=1200, | |
| 109 slave_names=None, factory_properties=None): | |
| 110 """Generates and register a builder along with its slave(s). | |
| 111 | |
| 112 Implicitly register slave_name or slave_names if they weren't registered yet. | |
| 113 If none of slave_name or slave_names is supplied, a slave name will be | |
| 114 constructed from the builder name.""" | |
| 115 if platform not in ('win32', 'win64', 'linux', 'mac', 'arm'): | |
| 116 raise Exception(platform + ' is not an known os type') | |
| 117 run_crash_handler = False | |
| 118 # Don't enable auto_reboot for people testing locally. | |
| 119 auto_reboot = ActiveMaster.is_production_host | |
| 120 if platform == 'win32': | |
| 121 factory = m_win32[project] | |
| 122 run_crash_handler = True | |
| 123 formats = ['msvs'] | |
| 124 elif platform == 'win64': | |
| 125 factory = m_win64[project] | |
| 126 run_crash_handler = True | |
| 127 formats = ['msvs'] | |
| 128 elif platform == 'linux': | |
| 129 factory = m_linux[project] | |
| 130 formats = ['scons', 'make'] | |
| 131 elif platform == 'mac': | |
| 132 factory = m_mac[project] | |
| 133 formats = ['xcode'] | |
| 134 elif platform == 'arm': | |
| 135 factory = m_arm[project] | |
| 136 formats = ['scons', 'linux'] | |
| 137 # Arm slaves have issue rebooting continuously. | |
| 138 auto_reboot = False | |
| 139 if project == 'nacl': | |
| 140 builder_factory = factory( | |
| 141 identifier=builder_name, slave_type='Trybot', target=target, | |
| 142 tests=tests, options=options, mode=mode, compile_timeout=timeout, | |
| 143 clobber=True, factory_properties=factory_properties) | |
| 144 elif project == 'naclsdk': | |
| 145 builder_factory = factory( | |
| 146 identifier=builder_name, slave_type='Trybot', target=target, | |
| 147 tests=tests, options=options, mode=mode, compile_timeout=timeout, | |
| 148 clobber=True, factory_properties=factory_properties, | |
| 149 official_release=False) | |
| 150 elif project == 'o3d': | |
| 151 builder_factory = factory( | |
| 152 identifier=builder_name, slave_type='Trybot', | |
| 153 tests=tests, options=options, mode=mode, compile_timeout=timeout, | |
| 154 clobber=True) | |
| 155 elif project == 'gyp': | |
| 156 builder_factory = factory(formats=formats) | |
| 157 else: | |
| 158 assert False | |
| 159 builder = { | |
| 160 'name': builder_name, | |
| 161 # TODO(maruel): remove | |
| 162 'builddir': builder_name.replace(' ', '-'), | |
| 163 'factory': builder_factory, | |
| 164 'auto_reboot': auto_reboot, | |
| 165 } | |
| 166 if slave_names: | |
| 167 builder['slavenames'] = slave_names | |
| 168 else: | |
| 169 builder['slavename'] = builder_name.replace(' ', '-') | |
| 170 c['builders'].append(builder) | |
| 171 | |
| 172 | |
| 173 # Try queues. | |
| 174 pools = BuildersPools('nacl') | |
| 175 number_slaves = 12 | |
| 176 slaves = slaves_list.SlavesList('slaves.cfg', 'NativeClientTryServer') | |
| 177 | |
| 178 | |
| 179 # A index to slave name mapper. | |
| 180 def GetSlaveName(builder_names, index): | |
| 181 s = [] | |
| 182 for b in builder_names: | |
| 183 s += slaves.GetSlavesName(builder=b) | |
| 184 # Fill up with dummy test slaves. | |
| 185 s.extend(['try-%s-%d' % (builder_names[0], i) | |
| 186 for i in range(1, number_slaves + 1 - len(s))]) | |
| 187 return s[index - 1] | |
| 188 | |
| 189 | |
| 190 projects = [ | |
| 191 { | |
| 192 'name': 'nacl', | |
| 193 'platforms': [ | |
| 194 { | |
| 195 'name': 'hardy32_m32_n32_dbg', | |
| 196 'core_platform': 'linux', | |
| 197 'builder_names': ['hardy32'], | |
| 198 'target': 'dbg-linux,nacl,doc', | |
| 199 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
| 200 'nacl_selenium'], | |
| 201 'options': nacl_factory.generic_m32_n32_options, | |
| 202 }, | |
| 203 { | |
| 204 'name': 'hardy32_m32_n32_opt', | |
| 205 'core_platform': 'linux', | |
| 206 'builder_names': ['hardy32'], | |
| 207 'target': 'opt-linux,nacl,doc', | |
| 208 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
| 209 'nacl_selenium'], | |
| 210 'options': nacl_factory.generic_m32_n32_options, | |
| 211 }, | |
| 212 { | |
| 213 'name': 'lucid32_m32_n32_dbg', | |
| 214 'core_platform': 'linux', | |
| 215 'builder_names': ['lucid32'], | |
| 216 'target': 'dbg-linux,nacl,doc', | |
| 217 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
| 218 'nacl_selenium'], | |
| 219 'options': nacl_factory.generic_m32_n32_options, | |
| 220 }, | |
| 221 { | |
| 222 'name': 'lucid32_m32_n32_opt', | |
| 223 'core_platform': 'linux', | |
| 224 'builder_names': ['lucid32'], | |
| 225 'target': 'opt-linux,nacl,doc', | |
| 226 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
| 227 'nacl_selenium'], | |
| 228 'options': nacl_factory.generic_m32_n32_options, | |
| 229 }, | |
| 230 { | |
| 231 'name': 'hardy64_m32_n32_dbg', | |
| 232 'core_platform': 'linux', | |
| 233 'builder_names': ['hardy64'], | |
| 234 'target': 'dbg-linux,nacl,doc', | |
| 235 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
| 236 'nacl_selenium'], | |
| 237 'options': nacl_factory.generic_m32_n32_options, | |
| 238 }, | |
| 239 { | |
| 240 'name': 'hardy64_m32_n32_opt', | |
| 241 'core_platform': 'linux', | |
| 242 'builder_names': ['hardy64'], | |
| 243 'target': 'opt-linux,nacl,doc', | |
| 244 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
| 245 'nacl_selenium'], | |
| 246 'options': nacl_factory.generic_m32_n32_options, | |
| 247 }, | |
| 248 { | |
| 249 'name': 'lucid64_m32_n32_dbg', | |
| 250 'core_platform': 'linux', | |
| 251 'builder_names': ['lucid64'], | |
| 252 'target': 'dbg-linux,nacl,doc', | |
| 253 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
| 254 'nacl_selenium'], | |
| 255 'options': nacl_factory.generic_m32_n32_options, | |
| 256 }, | |
| 257 { | |
| 258 'name': 'lucid64_m32_n32_opt', | |
| 259 'core_platform': 'linux', | |
| 260 'builder_names': ['lucid64'], | |
| 261 'target': 'opt-linux,nacl,doc', | |
| 262 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
| 263 'nacl_selenium'], | |
| 264 'options': nacl_factory.generic_m32_n32_options, | |
| 265 }, | |
| 266 { | |
| 267 'name': 'hardy64_m64_n64_dbg', | |
| 268 'core_platform': 'linux', | |
| 269 'builder_names': ['hardy64'], | |
| 270 'target': 'dbg-linux,nacl,doc', | |
| 271 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
| 272 'options': nacl_factory.hardy64_m64_n64_options, | |
| 273 }, | |
| 274 { | |
| 275 'name': 'hardy64_m64_n64_opt', | |
| 276 'core_platform': 'linux', | |
| 277 'builder_names': ['hardy64'], | |
| 278 'target': 'opt-linux,nacl,doc', | |
| 279 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
| 280 'options': nacl_factory.hardy64_m64_n64_options, | |
| 281 }, | |
| 282 { | |
| 283 'name': 'lucid64_m64_n64_dbg', | |
| 284 'core_platform': 'linux', | |
| 285 'builder_names': ['lucid64'], | |
| 286 'target': 'dbg-linux,nacl,doc', | |
| 287 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
| 288 'options': nacl_factory.generic_m64_n64_options, | |
| 289 }, | |
| 290 { | |
| 291 'name': 'lucid64_m64_n64_opt', | |
| 292 'core_platform': 'linux', | |
| 293 'builder_names': ['lucid64'], | |
| 294 'target': 'opt-linux,nacl,doc', | |
| 295 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
| 296 'options': nacl_factory.generic_m64_n64_options, | |
| 297 }, | |
| 298 { | |
| 299 'name': 'mac_dbg', | |
| 300 'core_platform': 'mac', | |
| 301 'builder_names': ['mac'], | |
| 302 'target': 'dbg-mac,nacl,doc', | |
| 303 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
| 304 'nacl_selenium'], | |
| 305 'options': nacl_factory.generic_m32_n32_options, | |
| 306 }, | |
| 307 { | |
| 308 'name': 'mac_opt', | |
| 309 'core_platform': 'mac', | |
| 310 'builder_names': ['mac'], | |
| 311 'target': 'opt-mac,nacl,doc', | |
| 312 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
| 313 'nacl_selenium'], | |
| 314 'options': nacl_factory.generic_m32_n32_options, | |
| 315 }, | |
| 316 { | |
| 317 'name': 'win32_dbg', | |
| 318 'core_platform': 'win32', | |
| 319 'builder_names': ['win32'], | |
| 320 'target': 'dbg-win,nacl,doc', | |
| 321 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
| 322 'options': nacl_factory.win_m32_n32_options, | |
| 323 'factory_properties': { 'vcvarsall': 'x86' }, | |
| 324 }, | |
| 325 { | |
| 326 'name': 'win32_opt', | |
| 327 'core_platform': 'win32', | |
| 328 'builder_names': ['win32'], | |
| 329 'target': 'opt-win,nacl,doc', | |
| 330 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
| 331 'options': nacl_factory.win_m32_n32_options, | |
| 332 'factory_properties': { 'vcvarsall': 'x86' }, | |
| 333 }, | |
| 334 { | |
| 335 'name': 'win64_dbg', | |
| 336 'core_platform': 'win64', | |
| 337 'builder_names': ['win64'], | |
| 338 'target': 'dbg-win,nacl,doc', | |
| 339 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
| 340 'options': nacl_factory.win_m64_n64_options, | |
| 341 'factory_properties': { 'vcvarsall': 'x64' }, | |
| 342 }, | |
| 343 { | |
| 344 'name': 'win64_opt', | |
| 345 'core_platform': 'win64', | |
| 346 'builder_names': ['win64'], | |
| 347 'target': 'opt-win,nacl,doc', | |
| 348 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
| 349 'options': nacl_factory.win_m64_n64_options, | |
| 350 'factory_properties': { 'vcvarsall': 'x64' }, | |
| 351 }, | |
| 352 { | |
| 353 'name': 'arm_dbg', | |
| 354 'core_platform': 'arm', | |
| 355 # Use a single slave to prevent races on archive file. | |
| 356 'raw_slave_names': ['jega198'], | |
| 357 'target': 'dbg-linux,nacl,doc', | |
| 358 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
| 359 'nacl_trigger_arm_hw_dbg'], | |
| 360 'options': nacl_factory.linux_marm_narm_options['opt-arm-try'], | |
| 361 'factory_properties': { | |
| 362 'archive_build': True, | |
| 363 'archive_src': 'native_client/arm.tgz', | |
| 364 'archive_dst_base': 'between_builders', | |
| 365 'archive_dst': 'arm_try_dbg.tgz', | |
| 366 }, | |
| 367 }, | |
| 368 { | |
| 369 'name': 'arm_opt', | |
| 370 'core_platform': 'arm', | |
| 371 # Use a single slave to prevent races on archive file. | |
| 372 'raw_slave_names': ['jega199'], | |
| 373 'target': 'opt-linux,nacl,doc', | |
| 374 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
| 375 'nacl_trigger_arm_hw_opt'], | |
| 376 'options': nacl_factory.linux_marm_narm_options['opt-arm-try'], | |
| 377 'factory_properties': { | |
| 378 'archive_build': True, | |
| 379 'archive_src': 'native_client/arm.tgz', | |
| 380 'archive_dst_base': 'between_builders', | |
| 381 'archive_dst': 'arm_try_opt.tgz', | |
| 382 }, | |
| 383 }, | |
| 384 ], | |
| 385 }, | |
| 386 { | |
| 387 'name': 'naclsdk', | |
| 388 'platforms': [ | |
| 389 { | |
| 390 'name': 'linux', | |
| 391 'core_platform': 'linux', | |
| 392 'builder_names': ['hardy32', 'hardy64', 'lucid32', 'lucid64'], | |
| 393 'target': 'nacl_client_sdk', | |
| 394 }, | |
| 395 { | |
| 396 'name': 'mac', | |
| 397 'core_platform': 'mac', | |
| 398 'builder_names': ['mac'], | |
| 399 'target': 'native_client_sdk', | |
| 400 }, | |
| 401 { | |
| 402 'name': 'windows', | |
| 403 'core_platform': 'win32', | |
| 404 'builder_names': ['win32'], | |
| 405 'target': 'native_client_sdk', | |
| 406 }, | |
| 407 ], | |
| 408 }, | |
| 409 { | |
| 410 'name': 'gyp', | |
| 411 'tests': [], | |
| 412 'platforms': [ | |
| 413 { | |
| 414 'name': 'linux', | |
| 415 'builder_names': ['hardy32', 'hardy64', 'lucid32', 'lucid64'], | |
| 416 }, | |
| 417 { | |
| 418 'name': 'mac', | |
| 419 }, | |
| 420 { | |
| 421 'name': 'win', | |
| 422 'core_platform': 'win32', | |
| 423 'builder_names': ['win32'], | |
| 424 }, | |
| 425 ], | |
| 426 }, | |
| 427 { | |
| 428 'name': 'o3d', | |
| 429 'tests': [], | |
| 430 'platforms': [ | |
| 431 { | |
| 432 'name': 'linux', | |
| 433 'mode': 'dbg-linux', | |
| 434 #'builder_names': ['hardy32', 'hardy64', 'lucid32', 'lucid64'], | |
| 435 'builder_names': ['hardy32', 'hardy64'], | |
| 436 }, | |
| 437 { | |
| 438 'name': 'mac', | |
| 439 'mode': 'dbg-mac', | |
| 440 }, | |
| 441 { | |
| 442 'name': 'd3d', | |
| 443 'core_platform': 'win32', | |
| 444 'builder_names': ['win32'], | |
| 445 'mode': 'dbg-d3d', | |
| 446 }, | |
| 447 ], | |
| 448 }, | |
| 449 ] | |
| 450 | |
| 451 for project in projects: | |
| 452 for platform in project['platforms']: | |
| 453 true_builder_names = platform.get('builder_names', [platform['name']]) | |
| 454 slave_names = [GetSlaveName(true_builder_names, x) | |
| 455 for x in range(1, number_slaves + 1)] | |
| 456 # This allows builders to pluck out particular slaves to use. | |
| 457 # It is used for the arm cross-compile builds to prevent race conditions | |
| 458 # by allowing only a single slave to write to a share archive URL. | |
| 459 slave_names = platform.get('raw_slave_names', slave_names) | |
| 460 name = project['name'] + '-' + platform['name'] | |
| 461 CreateBot(platform=platform.get('core_platform', platform['name']), | |
| 462 target=platform.get('target', project.get('target')), | |
| 463 tests=platform.get('tests', project.get('tests')), | |
| 464 mode=platform.get('mode'), | |
| 465 options=platform.get('options', project.get('options')), | |
| 466 factory_properties=platform.get( | |
| 467 'factory_properties', project.get('factory_properties')), | |
| 468 slave_names=slave_names, | |
| 469 project=project['name'], | |
| 470 builder_name=name) | |
| 471 pools[project['name']].append(name) | |
| 472 | |
| 473 | |
| 474 # Arm board tests | |
| 475 for mode in ('dbg', 'opt'): | |
| 476 name = 'nacl-arm_hw_%s' % mode | |
| 477 f = m_arm['nacl'](name, clobber=True, | |
| 478 target='%s-linux,nacl' % mode, | |
| 479 tests=['nacl_small_tests', | |
| 480 'nacl_medium_tests', | |
| 481 'nacl_large_tests', | |
| 482 'nacl_arm_hw', | |
| 483 'nacl_selenium'], | |
| 484 options=nacl_factory.linux_marm_narm_options['%s-arm' % mode], | |
| 485 slave_type='Tester', | |
| 486 factory_properties={ | |
| 487 'archive_build': False, | |
| 488 'archive_url': ('http://chrome-web/buildbot/nacl_archive/' | |
| 489 'between_builders/arm_try_%s.tgz' % mode) | |
| 490 }, | |
| 491 ) | |
| 492 # ARM slaves have issue rebooting so don't make them auto reboot. | |
| 493 c['builders'].append({ | |
| 494 'name': name, | |
| 495 'builddir': name, | |
| 496 'factory': f, | |
| 497 'slavenames': ['nacl-arm2', 'nacl-arm2c', 'nacl-arm2d', 'nacl-arm1d'], | |
| 498 }) | |
| 499 | |
| 500 | |
| 501 ####### BUILDSLAVES | |
| 502 | |
| 503 # The 'slaves' list defines the set of allowable buildslaves. List all the | |
| 504 # slaves registered to a builder. Remove dupes. | |
| 505 c['slaves'] = master_utils.AutoSetupSlaves(c['builders'], | |
| 506 config.Master.GetBotPassword()) | |
| 507 | |
| 508 | |
| 509 ####### SCHEDULERS | |
| 510 | |
| 511 # Configure the Schedulers; | |
| 512 # Main Tryscheduler for the try queue. groups is defined in the loop above. | |
| 513 c['schedulers'] = [] | |
| 514 | |
| 515 last_good_urls = { | |
| 516 'nacl': config.Master.NativeClient.last_good_url, | |
| 517 'naclsdk': None, | |
| 518 'o3d': config.Master.O3D.last_good_url, | |
| 519 'gyp': None, | |
| 520 } | |
| 521 code_review_sites = { | |
| 522 'nacl': config.Master.NativeClient.code_review_site, | |
| 523 'naclsdk': None, | |
| 524 'o3d': config.Master.O3D.code_review_site, | |
| 525 'gyp': config.Master.NativeClient.code_review_site, | |
| 526 } | |
| 527 c['schedulers'].append(TryJobHTTP( | |
| 528 name='try_job_http', | |
| 529 port=ActiveMaster.try_job_port, | |
| 530 last_good_urls=last_good_urls, | |
| 531 code_review_sites=code_review_sites, | |
| 532 pools=pools)) | |
| 533 | |
| 534 if ActiveMaster.svn_url: | |
| 535 c['schedulers'].append(TryJobSubversion( | |
| 536 name='try_job_svn', | |
| 537 svn_url=ActiveMaster.svn_url, | |
| 538 last_good_urls=last_good_urls, | |
| 539 code_review_sites=code_review_sites, | |
| 540 pools=pools)) | |
| 541 | |
| 542 for mode in ('dbg', 'opt'): | |
| 543 s = Triggerable( | |
| 544 name='arm_%s_hw_tests' % mode, | |
| 545 builderNames=['nacl-arm_hw_%s' % mode]) | |
| 546 c['schedulers'].append(s) | |
| 547 | |
| 548 | |
| 549 ####### STATUS TARGETS | |
| 550 | |
| 551 # Adds common status and tools to this master. | |
| 552 master_utils.AutoSetupMaster(c, ActiveMaster, False) | |
| 553 | |
| 554 # Add more. | |
| 555 | |
| 556 if MAIL_NOTIFIER: | |
| 557 # Add a dumb MailNotifier first so it will be used for BuildSlave with | |
| 558 # notify_on_missing set when they go missing. | |
| 559 from buildbot.status import mail | |
| 560 c['status'].append(mail.MailNotifier( | |
| 561 fromaddr=ActiveMaster.from_address, | |
| 562 builders=[], | |
| 563 relayhost=config.Master.smtp, | |
| 564 lookup=master_utils.FilterDomain())) | |
| 565 | |
| 566 # Try job result emails. | |
| 567 from try_mail_notifier import TryMailNotifier | |
| 568 c['status'].append(TryMailNotifier( | |
| 569 fromaddr=ActiveMaster.from_address, | |
| 570 subject="try of %(reason)s @ r%(revision)s %(timestamp)s", | |
| 571 mode='all', | |
| 572 relayhost=config.Master.smtp, | |
| 573 lookup=master_utils.FilterDomain())) | |
| 574 | |
| 575 if UPDATE_CODEREVIEW: | |
| 576 c['status'].append(try_job_status_update.TryJobStatusUpdate( | |
| 577 important_steps=['compile'])) | |
| 578 | |
| 579 | |
| 580 # Keep last try jobs, the default is too low. Must keep at least a few days | |
| 581 # worth of try jobs. | |
| 582 c['buildHorizon'] = 2000 | |
| 583 c['logHorizon'] = 2000 | |
| 584 # Must be at least 2x the number of slaves. | |
| 585 c['eventHorizon'] = 100 | |
| 586 # Must be at least 2x the number of on-going builds. | |
| 587 c['buildCacheSize'] = 100 | |
| 588 | |
| 589 | |
| 590 ####### PROJECT IDENTITY | |
| 591 | |
| 592 # The 'projectURL' string will be used to provide a link | |
| 593 # from buildbot HTML pages to your project's home page. | |
| 594 c['projectURL'] = 'http://go/ChromeTryServer' | |
| 595 | |
| 596 # Buildbot master url: | |
| 597 c['buildbotURL'] = 'http://buildbot.jail.google.com/buildbot/nacl-tryserver/' | |
| OLD | NEW |