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 |