blob: 46d235f74af40bc76ba293040e96f981e23c1649 [file] [log] [blame]
# -*- python -*-
# ex: set syntax=python:
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# See master.experimental/slaves.cfg for documentation.
slaves = [
{
'master': 'DartFYI',
'builder': ['dart2js-linux-debug-checked-host-checked'],
'hostname': 'slave128-c3',
'os': 'linux',
'version': 'precise',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['dart2js-linux-debug-host-checked'],
'hostname': 'slave100-c3',
'os': 'linux',
'version': 'precise',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['dart2js-linux-debug-checked',
'dart2js-chrome-linux',
'dart2js-linux-debug',
'dart2js-linux-chromeff'],
'hostname': 'slave130-c3',
'os': 'linux',
'version': 'precise',
'bits': '64',
},
# This machine has specialized setup - please don't move the slave without
# pinging ricow@
{
'master': 'DartFYI',
'builder': ['dart2js-linux-release-host-checked',
'dart2js-linux-release-checked-host-checked'],
'hostname': 'slave99-c3',
'os': 'linux',
'version': 'precise',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['dart2js-full-windows-1-6'],
'hostname': 'vm77-m3',
'os': 'win',
'version': 'win7',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['dart2js-chromeOnAndroid-linux'],
'hostname': 'slave127-c3',
'os': 'linux',
'version': 'precise',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['vm-android-linux',
'v8-linux-release',
'dart2js-linux-release',
'dart2js-linux-release-checked-host-checked-x64',
'dartium-lucid64-debug-dev',],
'hostname': 'slave131-c3',
'os': 'linux',
'version': 'precise',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['v8-mac-release'],
'hostname': 'vm607-m3',
'os': 'mac',
'version': '10.7',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['v8-win-release'],
'hostname': 'vm210-m3',
'os': 'win',
'version': 'win7',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['pkg-win', 'pub-win'],
'hostname': 'vm167-m3',
'os': 'win',
'version': 'win10',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['dart2js-mac10.11-safarimobilesim',
'dart2js-mac10.11-safari'],
'hostname': 'vm669-m3',
'os': 'mac',
'version': '10.11.4',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['dartium-mac-debug'],
'hostname': 'vm608-m3',
'os': 'mac',
'version': '10.7',
'bits': '64'
},
{
'master': 'DartFYI',
'builder': ['dartium-lucid64-debug-be'],
'hostname': 'slave101-c3',
'os': 'linux',
'version': 'precise',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['dartium-lucid64-debug-stable',
'dartium-lucid64-debug-integration'],
'hostname': 'slave129-c3',
'os': 'linux',
'version': 'precise',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['dartium-win-debug-be',
'dartium-win-debug-stable',
'dart2js-win7-ie10chrome'],
'hostname': 'vm112-m3',
'os': 'win',
'version': 'win7',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['dartium-win-debug-integration',
'dartium-win-debug-dev'],
'hostname': 'vm192-m3',
'os': 'win',
'version': 'win7',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['dart-recipe'],
'hostname': 'slave37-c3',
'os': 'linux',
'version': 'precise',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['cross-mips-board-linux-release'],
'hostname': 'slave123-c3',
'os': 'linux',
'version': 'trusty',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['cross-mips-box-linux-release'],
'hostname': 'slave124-c3',
'os': 'linux',
'version': 'trusty',
'bits': '64',
},
{
'master': 'DartFYI',
'builder': ['vm-mips-release'],
'hostname': 'build28-b3',
'os': 'linux',
'version': 'debian squeeze',
'bits': 'mips 32',
},
{
'master': 'DartFYI',
'builder': ['vm-mips-debug'],
'hostname': 'build29-b3',
'os': 'linux',
'version': 'debian squeeze',
'bits': 'mips 32',
},
]
# This is hack to eliminate the need for sharing code between master and
# clients. These channels are replicated in scripts/factory/dart/channels.py.
channel_postfixes = ['-be', '-dev', '-stable', '-integration']
def valid_for_channel(builder, channel):
""" Returns true if we have this builder on this specific channel"""
return channel != '-integration' or ('dartium' in builder and not
'dartium-android-release' in builder)
def is_channel_builder(builder):
"""Returns true if the builder name is already specific to a channel
(i.e. the builder ends with a channel postfix)."""
for postfix in channel_postfixes:
if builder.endswith(postfix):
return True
return False
def duplicate_builders_in_slaves(slaves):
"""Traverses a list of slaves and duplicates the builders associated with each
slave for every channel. The channels have specified the postfix."""
for slave in slaves:
all_builders = []
for builder in slave.get('builder', ()):
if ('v8' not in builder
and not is_channel_builder(builder)):
for channel in channel_postfixes:
# Some channels don't have all builders
if valid_for_channel(builder, channel):
all_builders.append('%s%s' % (builder, channel))
else:
all_builders.append(builder)
slave['builder'] = all_builders
return slaves
slaves = duplicate_builders_in_slaves(slaves)