1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
# -*- python -*-
# ex: set syntax=python:
import os
from buildbot.worker import Worker
from buildbot.revlinks import RevlinkMatch, RevlinkMultiplexer
from buildbot.reporters import mail, irc
from passwords import SlavePassword, IRCPassword
from modulesetparser import ChangeSourceList, SchedulerList, BuilderList
# This is the dictionary that the buildmaster pays attention to. We also use
# a shorter alias to save typing.
c = BuildmasterConfig = {}
####### BUILDWORKERS
# The 'workers' list defines the set of recognized buildworkers. Each element is
# a BuildWorker object, specifying a unique worker name and password. The same
# worker name and password must be configured on the worker.
c['workers'] = [Worker("allegra", SlavePassword("allegra"), max_builds=1)]
c['protocols'] = {'pb': {'port': 9989}}
####### CHANGESOURCES
c['change_source'] = []
c['change_source'].extend(ChangeSourceList())
c['collapseRequests'] = False
####### REVLINKS
c['revlink'] = RevlinkMultiplexer(
RevlinkMatch([r'(?:git|https)://gitlab.freedesktop.org/(.*)'],
r'https://gitlab.freedesktop.org/\1/commit/%s'),
RevlinkMatch([r'(?:git|https)://anongit.freedesktop.org/git/(.*)'],
r'https://cgit.freedesktop.org/\1/commit/?id=%s'),
RevlinkMatch([r'git://github.com/(.*)'],
r'https://github.com/\1/commit/%s'),
RevlinkMatch([r'https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/(.*)'],
r'https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/\1?p=%s'))
####### SCHEDULERS
# Configure the Schedulers, which decide how to react to incoming changes.
c['schedulers'] = []
c['schedulers'].extend(SchedulerList())
####### BUILDERS
# The 'builders' list defines the Builders, which tell Buildbot how to perform a build:
# what steps, and which slaves can execute them. Note that any particular build will
# only take place on one slave.
c['builders'] = []
c['builders'].extend(BuilderList(['allegra']))
####### WEB SERVER
# a web server which shows the build status
c['www'] = {
'port': 8010,
'plugins': {'console_view': True},
'allowed_origins': ['http://medusa:8010', 'http://medusa.local:8010', 'http://dronecode.duckdns.org:8010'],
'change_hook_dialects': {'poller' : True},
}
####### REPORTERS
c['services'] = []
# an irc bot which reports build status
irc = irc.IRC("chat.freenode.org", "medusabot",
channels=["#cygwin-bots"],
password=IRCPassword(),
notify_events={
'exception': 1,
'successToFailure': 1,
'failureToSuccess': 1,
},
allowForce=True)
c['services'].append(irc)
# email notification of status change
c['services'].append(mail.MailNotifier(fromaddr='jon.turney@dronecode.org.uk',
sendToInterestedUsers=False,
extraRecipients=['jon.turney@dronecode.org.uk'],
mode='change',
extraHeaders = { 'X-Buildbot' : '1' }))
####### PROJECT IDENTITY
# the 'title' string will appear at the top of this buildbot
# installation's html.WebStatus home page (linked to the
# 'titleURL') and is embedded in the title of the waterfall HTML page.
c['title'] = "Xorg"
c['titleURL'] = "http://www.x.org/"
# the 'buildbotURL' string should point to the location where the buildbot's
# internal web server (usually the html.WebStatus page) is visible. This
# typically uses the port number set in the Waterfall 'status' entry, but
# with an externally-visible host name which the buildbot cannot figure out
# without some help.
c['buildbotURL'] = "http://dronecode.duckdns.org:8010/"
####### DB URL
c['db'] = {
# This specifies what database buildbot uses to store its state. You can leave
# this at its default for all but the largest installations.
'db_url' : "sqlite:///state.sqlite",
}
###### USAGE REPORTING
c['buildbotNetUsageData'] = 'basic'
|