| OLD | NEW |
| (Empty) |
| 1 # -*- python -*- | |
| 2 # ex: set syntax=python: | |
| 3 | |
| 4 # This is a sample buildmaster config file. It must be installed as | |
| 5 # 'master.cfg' in your buildmaster's base directory (although the filename | |
| 6 # can be changed with the --basedir option to 'mktap buildbot master'). | |
| 7 | |
| 8 # It has one job: define a dictionary named BuildmasterConfig. This | |
| 9 # dictionary has a variety of keys to control different aspects of the | |
| 10 # buildmaster. They are documented in docs/config.xhtml . | |
| 11 | |
| 12 | |
| 13 # This is the dictionary that the buildmaster pays attention to. We also use | |
| 14 # a shorter alias to save typing. | |
| 15 c = BuildmasterConfig = {} | |
| 16 | |
| 17 ####### BUILDSLAVES | |
| 18 | |
| 19 # the 'slaves' list defines the set of allowable buildslaves. Each element is | |
| 20 # a BuildSlave object, which is created with bot-name, bot-password. These | |
| 21 # correspond to values given to the buildslave's mktap invocation. | |
| 22 from buildbot.buildslave import BuildSlave | |
| 23 c['slaves'] = [BuildSlave("bot1name", "bot1passwd")] | |
| 24 | |
| 25 # to limit to two concurrent builds on a slave, use | |
| 26 # c['slaves'] = [BuildSlave("bot1name", "bot1passwd", max_builds=2)] | |
| 27 | |
| 28 | |
| 29 # 'slavePortnum' defines the TCP port to listen on. This must match the value | |
| 30 # configured into the buildslaves (with their --master option) | |
| 31 | |
| 32 c['slavePortnum'] = 9989 | |
| 33 | |
| 34 ####### CHANGESOURCES | |
| 35 | |
| 36 # the 'change_source' setting tells the buildmaster how it should find out | |
| 37 # about source code changes. Any class which implements IChangeSource can be | |
| 38 # put here: there are several in buildbot/changes/*.py to choose from. | |
| 39 | |
| 40 from buildbot.changes.pb import PBChangeSource | |
| 41 c['change_source'] = PBChangeSource() | |
| 42 | |
| 43 # For example, if you had CVSToys installed on your repository, and your | |
| 44 # CVSROOT/freshcfg file had an entry like this: | |
| 45 #pb = ConfigurationSet([ | |
| 46 # (None, None, None, PBService(userpass=('foo', 'bar'), port=4519)), | |
| 47 # ]) | |
| 48 | |
| 49 # then you could use the following buildmaster Change Source to subscribe to | |
| 50 # the FreshCVS daemon and be notified on every commit: | |
| 51 # | |
| 52 #from buildbot.changes.freshcvs import FreshCVSSource | |
| 53 #fc_source = FreshCVSSource("cvs.example.com", 4519, "foo", "bar") | |
| 54 #c['change_source'] = fc_source | |
| 55 | |
| 56 # or, use a PBChangeSource, and then have your repository's commit script run | |
| 57 # 'buildbot sendchange', or use contrib/svn_buildbot.py, or | |
| 58 # contrib/arch_buildbot.py : | |
| 59 # | |
| 60 #from buildbot.changes.pb import PBChangeSource | |
| 61 #c['change_source'] = PBChangeSource() | |
| 62 | |
| 63 # If you wat to use SVNPoller, it might look something like | |
| 64 # # Where to get source code changes | |
| 65 # from buildbot.changes.svnpoller import SVNPoller | |
| 66 # source_code_svn_url='https://svn.myproject.org/bluejay/trunk' | |
| 67 # svn_poller = SVNPoller( | |
| 68 # svnurl=source_code_svn_url, | |
| 69 # pollinterval=60*60, # seconds | |
| 70 # histmax=10, | |
| 71 # svnbin='/usr/bin/svn', | |
| 72 ## ) | |
| 73 # c['sources'] = [ svn_poller ] | |
| 74 | |
| 75 ####### SCHEDULERS | |
| 76 | |
| 77 ## configure the Schedulers | |
| 78 | |
| 79 from buildbot.scheduler import Scheduler | |
| 80 c['schedulers'] = [] | |
| 81 c['schedulers'].append(Scheduler(name="all", branch=None, | |
| 82 treeStableTimer=2*60, | |
| 83 builderNames=["buildbot-full"])) | |
| 84 | |
| 85 | |
| 86 ####### BUILDERS | |
| 87 | |
| 88 # the 'builders' list defines the Builders. Each one is configured with a | |
| 89 # dictionary, using the following keys: | |
| 90 # name (required): the name used to describe this builder | |
| 91 # slavename (required): which slave to use (must appear in c['bots']) | |
| 92 # builddir (required): which subdirectory to run the builder in | |
| 93 # factory (required): a BuildFactory to define how the build is run | |
| 94 # periodicBuildTime (optional): if set, force a build every N seconds | |
| 95 | |
| 96 # buildbot/process/factory.py provides several BuildFactory classes you can | |
| 97 # start with, which implement build processes for common targets (GNU | |
| 98 # autoconf projects, CPAN perl modules, etc). The factory.BuildFactory is the | |
| 99 # base class, and is configured with a series of BuildSteps. When the build | |
| 100 # is run, the appropriate buildslave is told to execute each Step in turn. | |
| 101 | |
| 102 # the first BuildStep is typically responsible for obtaining a copy of the | |
| 103 # sources. There are source-obtaining Steps in buildbot/steps/source.py for | |
| 104 # CVS, SVN, and others. | |
| 105 | |
| 106 cvsroot = ":pserver:anonymous@cvs.sourceforge.net:/cvsroot/buildbot" | |
| 107 cvsmodule = "buildbot" | |
| 108 | |
| 109 from buildbot.process import factory | |
| 110 from buildbot.steps.source import CVS | |
| 111 from buildbot.steps.shell import Compile | |
| 112 from buildbot.steps.python_twisted import Trial | |
| 113 f1 = factory.BuildFactory() | |
| 114 f1.addStep(CVS(cvsroot=cvsroot, cvsmodule=cvsmodule, login="", mode="copy")) | |
| 115 f1.addStep(Compile(command=["python", "./setup.py", "build"])) | |
| 116 f1.addStep(Trial(testChanges=True, testpath=".")) | |
| 117 | |
| 118 b1 = {'name': "buildbot-full", | |
| 119 'slavename': "bot1name", | |
| 120 'builddir': "full", | |
| 121 'factory': f1, | |
| 122 } | |
| 123 c['builders'] = [b1] | |
| 124 | |
| 125 | |
| 126 ####### STATUS TARGETS | |
| 127 | |
| 128 # 'status' is a list of Status Targets. The results of each build will be | |
| 129 # pushed to these targets. buildbot/status/*.py has a variety to choose from, | |
| 130 # including web pages, email senders, and IRC bots. | |
| 131 | |
| 132 c['status'] = [] | |
| 133 | |
| 134 # Use allowForce=True (boolean, not a string. ie: not 'True') to allow | |
| 135 # Forcing Builds in the Web User Interface. The default is False. | |
| 136 # from buildbot.status import html | |
| 137 # c['status'].append(html.WebStatus(http_port=8010,allowForce=True)) | |
| 138 | |
| 139 from buildbot.status import html | |
| 140 c['status'].append(html.WebStatus(http_port=8010)) | |
| 141 | |
| 142 # from buildbot.status import mail | |
| 143 # c['status'].append(mail.MailNotifier(fromaddr="buildbot@localhost", | |
| 144 # extraRecipients=["builds@example.com"], | |
| 145 # sendToInterestedUsers=False)) | |
| 146 # | |
| 147 # from buildbot.status import words | |
| 148 # c['status'].append(words.IRC(host="irc.example.com", nick="bb", | |
| 149 # channels=["#example"])) | |
| 150 # | |
| 151 # from buildbot.status import client | |
| 152 # c['status'].append(client.PBListener(9988)) | |
| 153 | |
| 154 | |
| 155 ####### DEBUGGING OPTIONS | |
| 156 | |
| 157 # if you set 'debugPassword', then you can connect to the buildmaster with | |
| 158 # the diagnostic tool in contrib/debugclient.py . From this tool, you can | |
| 159 # manually force builds and inject changes, which may be useful for testing | |
| 160 # your buildmaster without actually committing changes to your repository (or | |
| 161 # before you have a functioning 'sources' set up). The debug tool uses the | |
| 162 # same port number as the slaves do: 'slavePortnum'. | |
| 163 | |
| 164 #c['debugPassword'] = "debugpassword" | |
| 165 | |
| 166 # if you set 'manhole', you can ssh into the buildmaster and get an | |
| 167 # interactive python shell, which may be useful for debugging buildbot | |
| 168 # internals. It is probably only useful for buildbot developers. You can also | |
| 169 # use an authorized_keys file, or plain telnet. | |
| 170 #from buildbot import manhole | |
| 171 #c['manhole'] = manhole.PasswordManhole("tcp:9999:interface=127.0.0.1", | |
| 172 # "admin", "password") | |
| 173 | |
| 174 | |
| 175 ####### PROJECT IDENTITY | |
| 176 | |
| 177 # the 'projectName' string will be used to describe the project that this | |
| 178 # buildbot is working on. For example, it is used as the title of the | |
| 179 # waterfall HTML page. The 'projectURL' string will be used to provide a link | |
| 180 # from buildbot HTML pages to your project's home page. | |
| 181 | |
| 182 c['projectName'] = "Buildbot" | |
| 183 c['projectURL'] = "http://buildbot.sourceforge.net/" | |
| 184 | |
| 185 # the 'buildbotURL' string should point to the location where the buildbot's | |
| 186 # internal web server (usually the html.Waterfall page) is visible. This | |
| 187 # typically uses the port number set in the Waterfall 'status' entry, but | |
| 188 # with an externally-visible host name which the buildbot cannot figure out | |
| 189 # without some help. | |
| 190 | |
| 191 c['buildbotURL'] = "http://localhost:8010/" | |
| OLD | NEW |