talos-try/master.cfg
author Chris AtLee <catlee@mozilla.com>
Thu, 24 Sep 2009 08:57:51 -0400
changeset 1545 ec36de49b85abfc3017f167d3cb5b2fca3368fe4
parent 1455 6941c851329bd7077977e51b284ccc4298e84f83
child 1627 846b7d3c71f4dbede266e13e9d85d06e3629da84
permissions -rw-r--r--
Bug 516820 - Turn off tiger tests on m-c, and support per-OS testing. p=anodelman r=bhearsum

from buildbot.buildslave import BuildSlave
from buildbot.status import html

import buildbotcustom.process.factory
reload(buildbotcustom.process.factory)
from buildbotcustom.process.factory import TryTalosFactory

import buildbotcustom.scheduler
reload(buildbotcustom.scheduler)
from buildbotcustom.scheduler import NoMergeMultiScheduler

import config
reload(config)
from config import *

# This is the dictionary that the buildmaster pays attention to. We also use
# a shorter alias to save typing.
c = BuildmasterConfig = {}

##
## Misc Config
##

c['debugPassword'] = "mozilla"
c['projectName'] = "Talos"
c['projectURL'] = "http://quality.mozilla.org/en/projects/automation/talos"
c['buildbotURL'] = "http://talos-master.mozilla.org:8011"
c['slavePortnum'] = 9011

##
## Status
##

c['status'] = []
c['status'].append(html.WebStatus(http_port=8011, allowForce=True))

from buildbot.status import tinderbox
from buildbot.status.mail import MailNotifier

# this is the system installed TinderboxMailNotifier
c['status'].append(tinderbox.TinderboxMailNotifier(
                       fromaddr="talos.buildbot@build.mozilla.org",
                       tree="MozillaTry",
                       extraRecipients=["tinderbox-daemon@tinderbox.mozilla.org",],
                       relayhost="smtp.mozilla.org",
                       builders=None,
                       useChangeTime=True,
                       logCompression="bzip2"))


##
## Slaves
##

import BuildSlaves
reload(BuildSlaves)
from BuildSlaves import SlavePasswords

c['slaves'] = []
for platform, names in SLAVES.items():
    c['slaves'].extend(BuildSlave(name, SlavePasswords[platform], max_builds=1) for name in names)

##
## Sources
##

from buildbot.changes.pb import PBChangeSource

c['change_source'] = [PBChangeSource()]

##
## Builders and Schedulers
##

c['schedulers'] = []

c['builders'] = []

for platform, platform_config in PLATFORMS.items():
    for slave_platform in platform_config['slave_platforms']:
        factory = TryTalosFactory(
            OS=slave_platform,
            toolsDir="tools",
            envName=platform_config['env_name'],
            workdirBase="../talos-data",
            buildBranch="Try",
            branchName="MozillaTest",
            configOptions=TALOS_CONFIG_OPTIONS,
            talosCmd=TALOS_CMD,
            fetchSymbols=False,
            pageset='',
            plugins='',
        )
        platform_name = platform_config[slave_platform]['name']
        builder = {
            'name': "%s try talos" % platform_name,
            'slavenames': SLAVES[slave_platform],
            'builddir': "%s" % slave_platform,
            'factory': factory,
        }
        s = NoMergeMultiScheduler(name='%s scheduler' % slave_platform,
            branch=platform,
            treeStableTimer=0,
            builderNames=[builder['name']],
            numberOfBuildsToTrigger=2,
        )
        c['schedulers'].append(s)
        c['builders'].append(builder)

        jss_factory = TryTalosFactory(
            OS=slave_platform,
            toolsDir="tools",
            envName=platform_config['env_name'],
            workdirBase="../talos-data",
            buildBranch="Try",
            branchName="MozillaTest",
            configOptions=TALOS_JSS_CONFIG_OPTIONS,
            talosCmd=TALOS_CMD,
            fetchSymbols=False,
            plugins='',
            pageset='',
        )
        platform_name = platform_config[slave_platform]['name']
        builder = {
            'name': "%s try talos jss" % (platform_name),
            'slavenames': SLAVES[slave_platform],
            'builddir': "%s-jss" % (slave_platform),
            'factory': jss_factory,
        }
        s = NoMergeMultiScheduler(name='%s jss scheduler' % (slave_platform),
                      branch='%s' % (platform),
                      treeStableTimer=0,
                      builderNames=[builder['name']],
                      numberOfBuildsToTrigger=2,
                      )
        c['schedulers'].append(s)
        c['builders'].append(builder)


        tp4_factory = TryTalosFactory(
            OS=slave_platform,
            toolsDir="tools",
            envName=platform_config['env_name'],
            workdirBase="../talos-data",
            buildBranch="Try",
            branchName="MozillaTest",
            configOptions=TALOS_TP4_CONFIG_OPTIONS,
            talosCmd=TALOS_CMD,
            fetchSymbols=False,
        )
        platform_name = platform_config[slave_platform]['name']
        builder = {
            'name': "%s try talos tp4" % (platform_name),
            'slavenames': SLAVES[slave_platform],
            'builddir': "%s-tp4" % (slave_platform),
            'factory': tp4_factory,
        }
        s = NoMergeMultiScheduler(name='%s tp4 scheduler' % (slave_platform),
                      branch='%s' % (platform),
                      treeStableTimer=0,
                      builderNames=[builder['name']],
                      numberOfBuildsToTrigger=2,
                      )
        c['schedulers'].append(s)
        c['builders'].append(builder)
        

        dirty_factory = TryTalosFactory(
            OS=slave_platform,
            toolsDir="tools",
            envName=platform_config['env_name'],
            workdirBase="../talos-data",
            buildBranch="Try",
            branchName="MozillaTest",
            configOptions=TALOS_DIRTY_CONFIG_OPTIONS,
            talosCmd=TALOS_CMD,
            fetchSymbols=False,
            talosAddOns=TALOS_DIRTY_ADDONS,
        )
        platform_name = platform_config[slave_platform]['name']
        builder = {
            'name': "%s try talos dirty" % (platform_name),
            'slavenames': SLAVES[slave_platform],
            'builddir': "%s-dirty" % (slave_platform),
            'factory': dirty_factory,
        }
        s = NoMergeMultiScheduler(name='%s dirty scheduler' % (slave_platform),
                      branch='%s' % (platform),
                      treeStableTimer=0,
                      builderNames=[builder['name']],
                      numberOfBuildsToTrigger=2,
                      )
        c['schedulers'].append(s)
        c['builders'].append(builder)