Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/buildbot/docs/examples/twisted_master.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'buildbot/docs/examples/twisted_master.cfg')
-rw-r--r--buildbot/docs/examples/twisted_master.cfg329
1 files changed, 329 insertions, 0 deletions
diff --git a/buildbot/docs/examples/twisted_master.cfg b/buildbot/docs/examples/twisted_master.cfg
new file mode 100644
index 0000000..7185ef3
--- /dev/null
+++ b/buildbot/docs/examples/twisted_master.cfg
@@ -0,0 +1,329 @@
+#! /usr/bin/python
+
+# NOTE: this configuration file is from the buildbot-0.7.5 era or earlier. It
+# has not been brought up-to-date with the standards of buildbot-0.7.6 . For
+# examples of modern usage, please see hello.cfg, or the sample.cfg which is
+# installed when you run 'buildbot create-master'.
+
+# This configuration file is described in $BUILDBOT/docs/config.xhtml
+
+# This is used (with online=True) to run the Twisted Buildbot at
+# http://www.twistedmatrix.com/buildbot/ . Passwords and other secret
+# information are loaded from a neighboring file called 'private.py'.
+
+import sys
+sys.path.append('/home/buildbot/BuildBot/support-master')
+
+import os.path
+
+from buildbot.changes.pb import PBChangeSource
+from buildbot.scheduler import Scheduler, Try_Userpass
+from buildbot.steps.source import SVN
+from buildbot.process.factory import s
+from buildbot.process.process_twisted import \
+ QuickTwistedBuildFactory, \
+ FullTwistedBuildFactory, \
+ TwistedReactorsBuildFactory
+from buildbot.status import html, words, client, mail
+
+import extra_factory
+reload(extra_factory)
+from extra_factory import GoodTwistedBuildFactory
+
+import private # holds passwords
+reload(private) # make it possible to change the contents without a restart
+
+BuildmasterConfig = c = {}
+
+# I set really=False when testing this configuration at home
+really = True
+usePBChangeSource = True
+
+
+c['bots'] = []
+for bot in private.bot_passwords.keys():
+ c['bots'].append((bot, private.bot_passwords[bot]))
+
+c['sources'] = []
+
+# the Twisted buildbot currently uses the contrib/svn_buildbot.py script.
+# This makes a TCP connection to the ChangeMaster service to push Changes
+# into the build master. The script is invoked by
+# /svn/Twisted/hooks/post-commit, so it will only be run for things inside
+# the Twisted repository. However, the standard SVN practice is to put the
+# actual trunk in a subdirectory named "trunk/" (to leave room for
+# "branches/" and "tags/"). We want to only pay attention to the trunk, so
+# we use "trunk" as a prefix for the ChangeSource. This also strips off that
+# prefix, so that the Builders all see sensible pathnames (which means they
+# can do things like ignore the sandbox properly).
+
+source = PBChangeSource(prefix="trunk/")
+c['sources'].append(source)
+
+
+## configure the builders
+
+if 0:
+ # always build on trunk
+ svnurl = "svn://svn.twistedmatrix.com/svn/Twisted/trunk"
+ source_update = s(SVN, svnurl=svnurl, mode="update")
+ source_copy = s(SVN, svnurl=svnurl, mode="copy")
+ source_export = s(SVN, svnurl=svnurl, mode="export")
+else:
+ # for build-on-branch, we use these instead
+ baseURL = "svn://svn.twistedmatrix.com/svn/Twisted/"
+ defaultBranch = "trunk"
+ source_update = s(SVN, baseURL=baseURL, defaultBranch=defaultBranch,
+ mode="update")
+ source_copy = s(SVN, baseURL=baseURL, defaultBranch=defaultBranch,
+ mode="copy")
+ source_export = s(SVN, baseURL=baseURL, defaultBranch=defaultBranch,
+ mode="export")
+
+
+builders = []
+
+
+
+b24compile_opts = [
+ "-Wignore::PendingDeprecationWarning:distutils.command.build_py",
+ "-Wignore::PendingDeprecationWarning:distutils.command.build_ext",
+ ]
+
+
+b25compile_opts = b24compile_opts # FIXME
+
+
+b1 = {'name': "quick",
+ 'slavename': "bot1",
+ 'builddir': "quick",
+ 'factory': QuickTwistedBuildFactory(source_update,
+ python=["python2.3", "python2.4"]),
+ }
+builders.append(b1)
+
+b23compile_opts = [
+ "-Wignore::PendingDeprecationWarning:distutils.command.build_py",
+ "-Wignore::PendingDeprecationWarning:distutils.command.build_ext",
+ ]
+b23 = {'name': "debian-py2.3-select",
+ 'slavename': "bot-exarkun",
+ 'builddir': "full2.3",
+ 'factory': FullTwistedBuildFactory(source_copy,
+ python=["python2.3", "-Wall"],
+ # use -Werror soon
+ compileOpts=b23compile_opts,
+ processDocs=1,
+ runTestsRandomly=1),
+ }
+builders.append(b23)
+
+b24 = {'name': "debian-py2.4-select",
+ 'slavenames': ["bot-exarkun"],
+ 'builddir': "full2.4",
+ 'factory': FullTwistedBuildFactory(source_copy,
+ python=["python2.4", "-Wall"],
+ # use -Werror soon
+ compileOpts=b24compile_opts,
+ runTestsRandomly=1),
+ }
+builders.append(b24)
+
+b24debian64 = {
+ 'name': 'debian64-py2.4-select',
+ 'slavenames': ['bot-idnar-debian64'],
+ 'builddir': 'full2.4-debian64',
+ 'factory': FullTwistedBuildFactory(source_copy,
+ python=["python2.4", "-Wall"],
+ compileOpts=b24compile_opts),
+ }
+builders.append(b24debian64)
+
+b25debian = {
+ 'name': 'debian-py2.5-select',
+ 'slavenames': ['bot-idnar-debian'],
+ 'builddir': 'full2.5-debian',
+ 'factory': FullTwistedBuildFactory(source_copy,
+ python=["python2.5", "-Wall"],
+ compileOpts=b24compile_opts)}
+builders.append(b25debian)
+
+
+b25suse = {
+ 'name': 'suse-py2.5-select',
+ 'slavenames': ['bot-scmikes-2.5'],
+ 'builddir': 'bot-scmikes-2.5',
+ 'factory': FullTwistedBuildFactory(source_copy,
+ python=["python2.5", "-Wall"],
+ compileOpts=b24compile_opts),
+ }
+builders.append(b25suse)
+
+reactors = ['poll', 'epoll', 'gtk', 'gtk2']
+b4 = {'name': "debian-py2.4-reactors",
+ 'slavename': "bot2",
+ 'builddir': "reactors",
+ 'factory': TwistedReactorsBuildFactory(source_copy,
+ python="python2.4",
+ reactors=reactors),
+ }
+builders.append(b4)
+
+bosx24 = {
+ 'name': 'osx-py2.4-select',
+ 'slavenames': ['bot-exarkun-osx'],
+ 'builddir': 'full2.4-exarkun-osx',
+ 'factory': FullTwistedBuildFactory(source_copy,
+ python=["python2.4", "-Wall"],
+ compileOpts=b24compile_opts,
+ runTestsRandomly=1)}
+builders.append(bosx24)
+
+forcegc = {
+ 'name': 'osx-py2.4-select-gc',
+ 'slavenames': ['bot-exarkun-osx'],
+ 'builddir': 'full2.4-force-gc-exarkun-osx',
+ 'factory': GoodTwistedBuildFactory(source_copy,
+ python="python2.4")}
+builders.append(forcegc)
+
+
+# debuild is offline while we figure out how to build 2.0 .debs from SVN
+# b3 = {'name': "debuild",
+# 'slavename': "bot2",
+# 'builddir': "debuild",
+# 'factory': TwistedDebsBuildFactory(source_export,
+# python="python2.4"),
+# }
+# builders.append(b3)
+
+b24w32_scmikes_select = {
+ 'name': "win32-py2.4-select",
+ 'slavename': "bot-scmikes-win32",
+ 'builddir': "W32-full2.4-scmikes-select",
+ 'factory': TwistedReactorsBuildFactory(source_copy,
+ python="python",
+ compileOpts2=["-c","mingw32"],
+ reactors=["default"]),
+ }
+builders.append(b24w32_scmikes_select)
+
+b25w32_scmikes_select = {
+ 'name': "win32-py2.5-select",
+ 'slavename': "bot-scmikes-win32-2.5",
+ 'builddir': "W32-full2.5-scmikes-select",
+ 'factory': TwistedReactorsBuildFactory(source_copy,
+ python="python",
+ compileOpts2=["-c","mingw32"],
+ reactors=["default"]),
+ }
+builders.append(b25w32_scmikes_select)
+
+b24w32_win32er = {
+ 'name': "win32-py2.4-er",
+ 'slavename': "bot-win32-win32er",
+ 'builddir': "W32-full2.4-win32er",
+ 'factory': TwistedReactorsBuildFactory(source_copy,
+ python="python",
+ compileOpts2=["-c","mingw32"],
+ reactors=["win32"]),
+ }
+builders.append(b24w32_win32er)
+
+
+b24w32_iocp = {
+ 'name': "win32-py2.4-iocp",
+ 'slavename': "bot-win32-iocp",
+ 'builddir': "W32-full2.4-iocp",
+ 'factory': TwistedReactorsBuildFactory(source_copy,
+ python="python",
+ compileOpts2=[],
+ reactors=["iocp"]),
+ }
+builders.append(b24w32_iocp)
+
+
+b24freebsd = {'name': "freebsd-py2.4-select-kq",
+ 'slavename': "bot-landonf",
+ 'builddir': "freebsd-full2.4",
+ 'factory':
+ TwistedReactorsBuildFactory(source_copy,
+ python="python2.4",
+ reactors=["default",
+ "kqueue",
+ ]),
+ }
+builders.append(b24freebsd)
+
+
+osxtsr = {'name': "osx-py2.4-tsr",
+ 'slavename': "bot-exarkun-osx",
+ 'builddir': "osx-tsr",
+ 'factory': TwistedReactorsBuildFactory(
+ source_copy,
+ python="python2.4",
+ reactors=["tsr"])}
+builders.append(osxtsr)
+
+
+bpypyc = {'name': 'osx-pypyc-select',
+ 'slavename': 'bot-jerub-pypy',
+ 'builddir': 'pypy-c',
+ 'factory': TwistedReactorsBuildFactory(source_copy,
+ python="pypy-c",
+ reactors=["default"])}
+builders.append(bpypyc)
+
+c['builders'] = builders
+
+# now set up the schedulers. We do this after setting up c['builders'] so we
+# can auto-generate a list of all of them.
+all_builders = [b['name'] for b in c['builders']]
+all_builders.sort()
+all_builders.remove("quick")
+
+## configure the schedulers
+s_quick = Scheduler(name="quick", branch=None, treeStableTimer=30,
+ builderNames=["quick"])
+s_try = Try_Userpass("try", all_builders, port=9989,
+ userpass=private.try_users)
+
+s_all = []
+for i, builderName in enumerate(all_builders):
+ s_all.append(Scheduler(name="all-" + builderName,
+ branch=None, builderNames=[builderName],
+ treeStableTimer=(5 * 60 + i * 30)))
+c['schedulers'] = [s_quick, s_try] + s_all
+
+
+
+# configure other status things
+
+c['slavePortnum'] = 9987
+c['status'] = []
+if really:
+ p = os.path.expanduser("~/.twistd-web-pb")
+ c['status'].append(html.Waterfall(distrib_port=p))
+else:
+ c['status'].append(html.Waterfall(http_port=9988))
+if really:
+ c['status'].append(words.IRC(host="irc.freenode.net",
+ nick='buildbot',
+ channels=["twisted"]))
+
+c['debugPassword'] = private.debugPassword
+#c['interlocks'] = [("do-deb", ["full-2.2"], ["debuild"])]
+if hasattr(private, "manhole"):
+ from buildbot import manhole
+ c['manhole'] = manhole.PasswordManhole(*private.manhole)
+c['status'].append(client.PBListener(9936))
+m = mail.MailNotifier(fromaddr="buildbot@twistedmatrix.com",
+ builders=["quick", "debian-py2.3-select"],
+ sendToInterestedUsers=True,
+ extraRecipients=["warner@lothar.com"],
+ mode="problem",
+ )
+c['status'].append(m)
+c['projectName'] = "Twisted"
+c['projectURL'] = "http://twistedmatrix.com/"
+c['buildbotURL'] = "http://twistedmatrix.com/buildbot/"