379 lines
14 KiB
Python
379 lines
14 KiB
Python
# -*- python -*-
|
|
|
|
# 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 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['projectName'] = "Mozilla CVS trunk patch uploader"
|
|
c['projectURL'] = "http://www.mozilla.org"
|
|
c['buildbotURL'] = "http://staging-build-console.build.mozilla.org:8010"
|
|
c['slavePortnum'] = 9990
|
|
|
|
##
|
|
## Slaves
|
|
##
|
|
# (bot-name, bot-password)
|
|
c['bots'] = [("linux1", "s3ndch@nge"),
|
|
("win1", "s3ndch@nge"),
|
|
("mac1", "s3ndch@nge")]
|
|
|
|
##
|
|
## Status
|
|
##
|
|
|
|
from buildbot.status.html import Waterfall
|
|
c['status'] = []
|
|
c['status'].append(Waterfall(http_port=8010,
|
|
css="/home/buildmaster/sendchange-server/waterfall.css",
|
|
allowForce=True))
|
|
|
|
from buildbot.status.tinderbox import TinderboxMailNotifier
|
|
c['status'].append(TinderboxMailNotifier(
|
|
fromaddr="tryserver@build.mozilla.org",
|
|
tree="MozillaTry",
|
|
extraRecipients=["tinderbox-daemon@tinderbox.mozilla.org"],
|
|
relayhost="mail.build.mozilla.org",
|
|
builders=["Try server linux builder",
|
|
"Try server mac builder",
|
|
"Try server win32 builder"],
|
|
logCompression="bzip2"))
|
|
##
|
|
## Sources
|
|
##
|
|
|
|
from buildbot.changes.pb import PBChangeSource
|
|
c['sources'] = []
|
|
c['sources'].append(PBChangeSource())
|
|
|
|
##
|
|
## Schedulers
|
|
##
|
|
|
|
c['schedulers'] = []
|
|
|
|
# scheduler for sendchange
|
|
from buildbot.scheduler import Scheduler
|
|
c['schedulers'].append(Scheduler(name="Sendchange test scheduler",
|
|
branch="HEAD_TRY",
|
|
treeStableTimer=3,
|
|
builderNames=["Try server linux builder",
|
|
"Try server mac builder",
|
|
"Try server win32 builder"]))
|
|
|
|
# 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 = []
|
|
|
|
CVSROOT = ":pserver:anonymous@cvs.mozilla.org:/cvsroot"
|
|
OBJDIR = "objdir"
|
|
PKG_BASENAME = "firefox-try"
|
|
SCP_STRING = "trybld@build.mozilla.org:/builds/tryserver"
|
|
|
|
from buildbot.process import factory
|
|
s = factory.s
|
|
from buildbot.steps.shell import ShellCommand
|
|
from buildbot.steps.transfer import FileDownload, FileUpload
|
|
|
|
firefox_sendchange_linux_steps = [
|
|
s(MozillaChangePusher),
|
|
s(ShellCommand, name="remove source and obj dirs",
|
|
command=["rm", "-rf", "mozilla"],
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
workdir="."),
|
|
|
|
s(ShellCommand, name="checkout client.mk",
|
|
description=["fetching client.mk"],
|
|
descriptionDone=["client.mk"],
|
|
command=["cvs", "-d", CVSROOT, "co",
|
|
"mozilla/client.mk"],
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
workdir="."),
|
|
|
|
s(ShellCommand, name="source checkout",
|
|
description=["fetching source"],
|
|
descriptionDone=["source"],
|
|
command=["make", "-f", "client.mk", "checkout"],
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
workdir="mozilla",
|
|
env={'MOZ_CO_PROJECT': 'browser'}),
|
|
|
|
# TODO: Support people uploading their own mozconfig
|
|
s(FileDownload, mastersrc="mozconfig-linux",
|
|
slavedest=".mozconfig",
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
workdir="mozilla"),
|
|
|
|
s(MozillaPatchDownload, patchDir="patchstore",
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
workdir="mozilla"),
|
|
s(MozillaCustomPatch, workdir="mozilla",
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True),
|
|
|
|
s(ShellCommand, name="mozconfig contents",
|
|
command=["cat",".mozconfig"],
|
|
workdir="mozilla"),
|
|
|
|
s(ShellCommand, name="building",
|
|
description=["building"],
|
|
descriptionDone=["compile"],
|
|
command=["make", "-f", "client.mk", "build"],
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
workdir="mozilla"),
|
|
|
|
s(ShellCommand, name="packaging",
|
|
description=["creating package"],
|
|
descriptionDone=["packaging"],
|
|
command=["make", "package",
|
|
"PKG_BASENAME=%s-linux" % PKG_BASENAME],
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
warnOnFailure=True,
|
|
workdir="mozilla/%s" % OBJDIR),
|
|
|
|
s(ShellCommand, name="chmod package",
|
|
command=["chmod", "666",
|
|
"mozilla/%s/dist/%s-linux.tar.bz2" \
|
|
% (OBJDIR, PKG_BASENAME)],
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
warnOnFailure=True,
|
|
workdir="."),
|
|
|
|
s(MozillaUploadTryBuild, slavesrc="mozilla/%s/dist/%s-linux.tar.bz2" \
|
|
% (OBJDIR, PKG_BASENAME),
|
|
scpString=SCP_STRING,
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
warnOnFailure=True,
|
|
workdir="."),
|
|
]
|
|
|
|
firefox_sendchange_linux_builder = {
|
|
'name': "Try server linux builder",
|
|
'slavenames': ['linux1'],
|
|
'builddir': "sendchange-linux",
|
|
'factory': factory.BuildFactory(firefox_sendchange_linux_steps),
|
|
'category': "Sendchange"
|
|
}
|
|
builders.append(firefox_sendchange_linux_builder)
|
|
|
|
firefox_sendchange_mac_steps = [
|
|
s(MozillaChangePusher),
|
|
s(ShellCommand, name="remove source and obj dirs",
|
|
command=["rm", "-rf", "mozilla"],
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
workdir="."),
|
|
|
|
s(ShellCommand, name="checkout client.mk",
|
|
description=["fetching client.mk"],
|
|
descriptionDone=["client.mk"],
|
|
command=["cvs", "-d", CVSROOT, "co",
|
|
"mozilla/client.mk"],
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
workdir="."),
|
|
|
|
s(ShellCommand, name="source checkout",
|
|
description=["fetching source"],
|
|
descriptionDone=["source"],
|
|
command=["make", "-f", "client.mk", "checkout"],
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
workdir="mozilla",
|
|
env={'MOZ_CO_PROJECT': 'browser'}),
|
|
|
|
# TODO: Support people uploading their own mozconfig
|
|
s(FileDownload, mastersrc="mozconfig-mac",
|
|
slavedest=".mozconfig",
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
workdir="mozilla"),
|
|
|
|
s(MozillaPatchDownload, patchDir="patchstore",
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
workdir="mozilla"),
|
|
s(MozillaCustomPatch, workdir="mozilla",
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True),
|
|
|
|
s(ShellCommand, name="mozconfig contents",
|
|
command=["cat",".mozconfig"],
|
|
workdir="mozilla"),
|
|
|
|
s(ShellCommand, name="building",
|
|
description=["building"],
|
|
descriptionDone=["compile"],
|
|
command=["make", "-f", "client.mk", "build"],
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
workdir="mozilla"),
|
|
|
|
# if more than one slave is added this pkgname will need to have the build#
|
|
# somewhere in it, otherwise it may get overridden
|
|
s(ShellCommand, name="packaging",
|
|
description=["creating package"],
|
|
descriptionDone=["packaging"],
|
|
command=["make", "package",
|
|
"PKG_BASENAME=%s-mac" % PKG_BASENAME],
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
warnOnFailure=True,
|
|
workdir="mozilla/%s/ppc" % OBJDIR),
|
|
|
|
s(ShellCommand, name="chmod package",
|
|
command=["chmod", "666",
|
|
"mozilla/%s/ppc/dist/%s-mac.dmg" \
|
|
% (OBJDIR, PKG_BASENAME)],
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
warnOnFailure=True,
|
|
workdir="."),
|
|
|
|
s(MozillaUploadTryBuild, slavesrc="mozilla/%s/ppc/dist/%s-mac.dmg" \
|
|
% (OBJDIR, PKG_BASENAME),
|
|
scpString=SCP_STRING,
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
warnOnFailure=True,
|
|
workdir="."),
|
|
]
|
|
|
|
firefox_sendchange_mac_builder = {
|
|
'name': "Try server mac builder",
|
|
'slavenames': ['mac1'],
|
|
'builddir': "sendchange-mac",
|
|
'factory': factory.BuildFactory(firefox_sendchange_mac_steps),
|
|
'category': "Sendchange"
|
|
}
|
|
builders.append(firefox_sendchange_mac_builder)
|
|
|
|
firefox_sendchange_win32_steps = [
|
|
s(MozillaChangePusher),
|
|
s(ShellCommand, name="remove source and obj dirs",
|
|
command=["rmdir", "/s", "/q", "mozilla"],
|
|
workdir=".",
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
env=MozillaEnvironments['win32-buildbotref-v4']),
|
|
|
|
s(ShellCommand, name="checkout client.mk",
|
|
description=["fetching client.mk"],
|
|
descriptionDone=["client.mk"],
|
|
command=["cvs", "-d", CVSROOT, "co",
|
|
"mozilla/client.mk"],
|
|
workdir=".",
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
env=MozillaEnvironments['win32-buildbotref-v4']),
|
|
|
|
s(ShellCommand, name="source checkout",
|
|
description=["fetching source"],
|
|
descriptionDone=["source"],
|
|
command=["make", "-f", "client.mk", "checkout"],
|
|
workdir="mozilla",
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
env=MozillaEnvironments['win32-buildbotref-v4']),
|
|
|
|
# TODO: Support people uploading their own mozconfig
|
|
s(FileDownload, mastersrc="mozconfig-win32",
|
|
slavedest=".mozconfig",
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
workdir="mozilla"),
|
|
|
|
s(MozillaPatchDownload, patchDir="patchstore",
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
workdir="mozilla"),
|
|
s(MozillaCustomPatch, workdir="mozilla",
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True),
|
|
|
|
s(ShellCommand, name="mozconfig contents",
|
|
command=["cat",".mozconfig"],
|
|
workdir="mozilla",
|
|
env=MozillaEnvironments['win32-buildbotref-v4']),
|
|
|
|
s(ShellCommand, name="building",
|
|
description=["building"],
|
|
descriptionDone=["compile"],
|
|
command=["make", "-f", "client.mk", "build"],
|
|
workdir="mozilla",
|
|
haltOnFailure=True,
|
|
flunkOnFailure=True,
|
|
env=MozillaEnvironments['win32-buildbotref-v4']),
|
|
|
|
s(ShellCommand, name="packaging",
|
|
description=["creating package"],
|
|
descriptionDone=["packaging"],
|
|
command=["make", "installer",
|
|
"PKG_BASENAME=%s-win32" % PKG_BASENAME],
|
|
workdir="mozilla/%s" % OBJDIR,
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
warnOnFailure=True,
|
|
env=MozillaEnvironments['win32-buildbotref-v4']),
|
|
|
|
s(ShellCommand, name="chmod package",
|
|
command=["chmod", "666",
|
|
"mozilla/%s/dist/install/sea/%s-win32.installer.exe" \
|
|
% (OBJDIR, PKG_BASENAME)],
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
warnOnFailure=True,
|
|
workdir="."),
|
|
|
|
s(MozillaUploadTryBuild,
|
|
slavesrc="mozilla/%s/dist/install/sea/%s-win32.installer.exe"
|
|
% (OBJDIR, PKG_BASENAME),
|
|
scpString=SCP_STRING,
|
|
haltOnFailure=False,
|
|
flunkOnFailure=False,
|
|
warnOnFailure=True,
|
|
workdir="."),
|
|
]
|
|
|
|
firefox_sendchange_win32_builder = {
|
|
'name': "Try server win32 builder",
|
|
'slavenames': ['win1'],
|
|
'builddir': "sendchange-win32",
|
|
'factory': factory.BuildFactory(firefox_sendchange_win32_steps),
|
|
'category': "Sendchange"
|
|
}
|
|
builders.append(firefox_sendchange_win32_builder)
|
|
|
|
c['builders'] = builders
|
|
|