# This is a sample buildmaster config file. It must be installed as # 'master.cfg' in your buildmaster's base directory (although the filename # can be changed with the --basedir option to 'mktap buildbot master'). # It has one job: define a dictionary named BuildmasterConfig. This # dictionary has a variety of keys to control different aspects of the # buildmaster. They are documented in docs/config.xhtml . import os.path # from buildbot.changes.freshcvs import FreshCVSSource from buildbot.scheduler import Scheduler, Periodic from buildbot.process import step, factory from buildbot.status import html from buildbot.steps.transfer import FileDownload s = factory.s from auth import * import mozbuild reload(mozbuild) from mozbuild 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'] = debugPassword # c['manhole'] = Manhole(9455, "buildbot", "mankey") c['projectName'] = "unittest" c['projectURL'] = "http://wiki.mozilla.org/unittest" c['buildbotURL'] = "http://localhost:8010/" c['slavePortnum'] = 9989 ## ## Slaves ## # (bot-name, bot-password) c['bots'] = authList ## ## Status ## c['status'] = [] c['status'].append(html.Waterfall(http_port=2005)) # c['status'].append(html.Waterfall(http_port=2005, css="/home/rob/projects/master/waterfall.css")) from buildbot.status import tinderbox c['status'].append(tinderbox.TinderboxMailNotifier( fromaddr="rcampbell@mozilla.com", tree="Firefox", extraRecipients=["tinderbox-daemon@tinderbox.mozilla.org", "rcampbell@mozilla.com"], relayhost="smtp.mozilla.org", logCompression="bzip2")) ## ## Sources ## from buildbot.changes import bonsaipoller c['sources'] = [] c['sources'].append(bonsaipoller.BonsaiPoller( bonsaiURL = "http://bonsai.mozilla.org", module = "PhoenixTinderbox", branch = "HEAD", pollInterval = 1 * 60)) ## ## Schedulers ## c['schedulers'] = [] c['schedulers'].append(Scheduler(name="bonsai build scheduler", branch="HEAD", treeStableTimer=5*60, builderNames=["WINNT 5.1 qm-winxp01 dep unit test", "WINNT 5.2 qm-win2k3-01 dep unit test", "Linux qm-rhel02 dep unit test", "Linux qm-centos5-01 dep unit test", "MacOSX Darwin 8.8.4 qm-xserve01 dep unit test"])) # c['schedulers'].append(Periodic("6 hour win build", ["winxp test"], 6*60*60)) # c['schedulers'].append(Periodic("6 hour linux build", ["linref test"], 6*60*60)) # c['schedulers'].append(Periodic("30 minute build cycler", # ["MacOSX Darwin 8.8.4 qm-xserve01 dep unit test"], # 30*60)) # the 'builders' list defines the Builders. Each one is configured with a # dictionary, using the following keys: # name (required): the name used to describe this bilder # slavename (required): which slave to use, must appear in c['bots'] # builddir (required): which subdirectory to run the builder in # factory (required): a BuildFactory to define how the build is run # periodicBuildTime (optional): if set, force a build every N seconds builders = [] ## ## Linux ## linuxFactory = factory.BuildFactory() linuxFactory.addStep(MozillaCheckoutClientMk, workdir="."), linuxFactory.addStep(FileDownload, mastersrc="mozconfig-places", slavedest=".mozconfig", workdir="mozilla") linuxFactory.addStep(step.ShellCommand, name="mozconfig contents", command=["cat",".mozconfig"], workdir="mozilla") linuxFactory.addStep(step.Compile, name="checkout", description=["checking out"], descriptionDone = ["checkout"], command=["make","-f","client.mk","checkout"], workdir='mozilla') linuxFactory.addStep(MozillaClobber, platform="linux", workdir='.', env=MozillaEnvironments['linux']) linuxFactory.addStep(step.Compile, command=["make", "-f", "client.mk", "build"], workdir='mozilla') linuxFactory.addStep(MozillaCheck, warnOnWarnings=True, workdir="mozilla/objdir") linuxFactory.addStep(MozillaReftest, warnOnWarnings=True, workdir="mozilla/layout/reftests", env=MozillaEnvironments['linux']) linuxFactory.addStep(MozillaMochitest, warnOnWarnings=True, workdir="mozilla/objdir/_tests/testing/mochitest", env=MozillaEnvironments['linux']) linuxFactory.addStep(MozillaMochichrome, warnOnWarnings=True, workdir="mozilla/objdir/_tests/testing/mochitest", env=MozillaEnvironments['linux']) firefox_trunk_unix_builder = { 'name': "Linux qm-rhel02 dep unit test", 'slavenames': ['linux'], 'builddir': "trunk_linux", 'factory': linuxFactory, 'category': "Firefox"} builders.append(firefox_trunk_unix_builder) centosFactory = factory.BuildFactory() centosFactory.addStep(MozillaCheckoutClientMk, workdir="."), centosFactory.addStep(FileDownload, mastersrc="mozconfig-places", slavedest=".mozconfig", workdir="mozilla") centosFactory.addStep(step.ShellCommand, name="mozconfig contents", command=["cat",".mozconfig"], workdir="mozilla") centosFactory.addStep(step.Compile, name="checkout", description=["checking out"], descriptionDone = ["checkout"], command=["make","-f","client.mk","checkout"], workdir='mozilla') centosFactory.addStep(MozillaClobber, platform="linux", workdir='.', env=MozillaEnvironments['centos']) centosFactory.addStep(step.Compile, command=["make", "-f", "client.mk", "build"], workdir='mozilla') centosFactory.addStep(MozillaCheck, warnOnWarnings=True, workdir="mozilla/objdir") centosFactory.addStep(MozillaReftest, warnOnWarnings=True, workdir="mozilla/layout/reftests", env=MozillaEnvironments['centos']) centosFactory.addStep(MozillaMochitest, warnOnWarnings=True, workdir="mozilla/objdir/_tests/testing/mochitest", env=MozillaEnvironments['centos']) centosFactory.addStep(MozillaMochichrome, warnOnWarnings=True, workdir="mozilla/objdir/_tests/testing/mochitest", env=MozillaEnvironments['centos']) firefox_trunk_centos5_builder = { 'name': "Linux qm-centos5-01 dep unit test", 'slavenames': ['qm-centos5-01'], 'builddir': "trunk_centos5", 'factory': centosFactory, 'category': "Firefox"} builders.append(firefox_trunk_centos5_builder) ## ## Mac OS X ## osxFactory = factory.BuildFactory() osxFactory.addStep(MozillaCheckoutClientMk, workdir="."), osxFactory.addStep(FileDownload, mastersrc="mozconfig-osx", slavedest=".mozconfig", workdir="mozilla") osxFactory.addStep(step.ShellCommand, name="mozconfig contents", command=["cat",".mozconfig"], workdir="mozilla") osxFactory.addStep(step.Compile, name="checkout", description=["checking out"], descriptionDone = ["checkout"], command=["make","-f","client.mk","checkout"], workdir='mozilla') osxFactory.addStep(MozillaClobber, platform="macosx", workdir='.', env=MozillaEnvironments['osx']) osxFactory.addStep(step.Compile, command=["make", "-f", "client.mk", "build"], workdir='mozilla') osxFactory.addStep(MozillaCheck, warnOnWarnings=True, workdir="mozilla/objdir") osxFactory.addStep(MozillaOSXReftest, warnOnWarnings=True, workdir="mozilla/layout/reftests", env=MozillaEnvironments['osx']) osxFactory.addStep(MozillaOSXMochitest, warnOnWarnings=True, workdir="mozilla/objdir/_tests/testing/mochitest", env=MozillaEnvironments['osx']) osxFactory.addStep(MozillaOSXMochichrome, warnOnWarnings=True, workdir="mozilla/objdir/_tests/testing/mochitest", env=MozillaEnvironments['osx']) firefox_trunk_osx_builder = { 'name': "MacOSX Darwin 8.8.4 qm-xserve01 dep unit test", 'slavenames': ['mac-osx'], 'builddir': "trunk_osx", 'factory': osxFactory, 'category': "Firefox"} builders.append(firefox_trunk_osx_builder) ## ## WinXP ## winxpFactory = factory.BuildFactory() winxpFactory.addStep(MozillaCheckoutClientMk, workdir=".", env=MozillaEnvironments['vc8']) winxpFactory.addStep(TinderboxShellCommand, name="KILL FIREFOX", command="pskill firefox.exe", workdir="C:\\Utilities") winxpFactory.addStep(FileDownload, mastersrc="mozconfig-winxp", slavedest=".mozconfig", workdir="mozilla") winxpFactory.addStep(step.ShellCommand, name="mozconfig contents", command=["cat",".mozconfig"], workdir="mozilla", env=MozillaEnvironments['vc8']) winxpFactory.addStep(step.Compile, name="checkout", description=["checking out"], descriptionDone = ["checkout"], command=["make","-f","client.mk","checkout"], workdir='mozilla', env=MozillaEnvironments['vc8']) winxpFactory.addStep(MozillaClobberWin, workdir='.', env=MozillaEnvironments['vc8']) winxpFactory.addStep(step.Compile, command=["make", "-f", "client.mk", "build"], workdir='mozilla', env=MozillaEnvironments['vc8']) winxpFactory.addStep(MozillaCheck, warnOnWarnings=True, workdir="mozilla/objdir", env=MozillaEnvironments['vc8']) winxpFactory.addStep(MozillaWin32Reftest, warnOnWarnings=True, workdir="mozilla/layout/reftests", env=MozillaEnvironments['vc8']) winxpFactory.addStep(MozillaWin32Mochitest, warnOnWarnings=True, workdir="mozilla/objdir/_tests/testing/mochitest", env=MozillaEnvironments['vc8']) # winxpFactory.addStep(MozillaWin32Mochichrome, warnOnWarnings=True, # workdir="mozilla/objdir/_tests/testing/mochitest", # env=MozillaEnvironments['vc8']) firefox_trunk_winxp_builder = { 'name': "WINNT 5.1 qm-winxp01 dep unit test", 'slavenames': ['win-vc8'], 'builddir': "trunk", 'factory': winxpFactory, 'category': "Firefox", } builders.append(firefox_trunk_winxp_builder) ## ## Win2k3 ## win2k3Factory = factory.BuildFactory() win2k3Factory.addStep(MozillaCheckoutClientMk, workdir=".", env=MozillaEnvironments['mozbuild']) win2k3Factory.addStep(TinderboxShellCommand, name="KILL FIREFOX", command="pskill firefox.exe", workdir="C:\\Utilities") win2k3Factory.addStep(FileDownload, mastersrc="mozconfig-win2k3", slavedest=".mozconfig", workdir="mozilla") win2k3Factory.addStep(step.ShellCommand, name="mozconfig contents", command=["cat",".mozconfig"], workdir="mozilla", env=MozillaEnvironments['mozbuild']) win2k3Factory.addStep(step.Compile, name="checkout", description=["checking out"], descriptionDone = ["checkout"], command=["make","-f","client.mk","checkout"], workdir='mozilla', env=MozillaEnvironments['mozbuild']) win2k3Factory.addStep(MozillaClobberWin, workdir='.', env=MozillaEnvironments['mozbuild']) win2k3Factory.addStep(step.Compile, command=["make", "-f", "client.mk", "build"], workdir='mozilla', env=MozillaEnvironments['mozbuild']) win2k3Factory.addStep(MozillaCheck, warnOnWarnings=True, workdir="mozilla/objdir", env=MozillaEnvironments['mozbuild']) win2k3Factory.addStep(MozillaWin32Reftest, warnOnWarnings=True, workdir="mozilla/layout/reftests", env=MozillaEnvironments['mozbuild']) win2k3Factory.addStep(MozillaWin32Mochitest, warnOnWarnings=True, workdir="mozilla/objdir/_tests/testing/mochitest", command='perl runtests.pl --appname=../../../dist/bin/firefox.exe --autorun --console-level=INFO --close-when-done', env=MozillaEnvironments['mozbuild']) # win2k3Factory.addStep(MozillaWin32Mochichrome, warnOnWarnings=True, # workdir="mozilla/objdir/_tests/testing/mochitest", # env=MozillaEnvironments['vc8']) firefox_trunk_win2k3_builder = { 'name': "WINNT 5.2 qm-win2k3-01 dep unit test", 'slavenames': ['win-2k3'], 'builddir': "trunk_2k3", 'factory': win2k3Factory, 'category': "Firefox", } # firefox_trunk_winxp_dbg_builder = { # 'name': "winxp test", # 'slavenames': ['win-vc8-dbg'], # 'builddir': "trunk", # 'factory': factory.BuildFactory(firefox_trunk_winxp_vc8_steps), # 'category': "Firefox", #} builders.append(firefox_trunk_win2k3_builder) c['builders'] = builders