talos-try/master.cfg
author Aki Sasaki <asasaki@mozilla.com>
Wed, 11 Nov 2009 13:45:35 -0800
changeset 1731 7288d34311cf2e42504e2151c34eda2316072d63
parent 1725 09009aeaf7d3cf93fec4904f9ca7e2ed656612aa
child 1742 e2f750a4edd3f6ef6fa6098bc6cb39fadf5c8f40
permissions -rw-r--r--
add geriatric master configs. bug 521888, p=jhford, r=me

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=1,
        )
        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=1,
                      )
        c['schedulers'].append(s)
        c['builders'].append(builder)

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

        v8_factory = TryTalosFactory(
            OS=slave_platform,
            toolsDir="tools",
            envName=platform_config['env_name'],
            workdirBase="../talos-data",
            buildBranch="Try",
            branchName="MozillaTest",
            configOptions=TALOS_V8_CONFIG_OPTIONS,
            talosCmd=TALOS_CMD,
            fetchSymbols=False,
            plugins='',
            pageset='',
        )
        platform_name = platform_config[slave_platform]['name']
        builder = {
            'name': "%s try talos v8" % (platform_name),
            'slavenames': SLAVES[slave_platform],
            'builddir': "%s-v8" % (slave_platform),
            'factory': v8_factory,
        }
        s = NoMergeMultiScheduler(name='%s v8 scheduler' % (slave_platform),
                      branch='%s' % (platform),
                      treeStableTimer=0,
                      builderNames=[builder['name']],
                      numberOfBuildsToTrigger=1,
                      )
        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=1,
                      )
        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,
            plugins='',
            pagseset='',
        )
        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=1,
                      )
        c['schedulers'].append(s)
        c['builders'].append(builder)

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