summaryrefslogtreecommitdiff
path: root/master.cfg
blob: 77f9dca9e464854b1c6dba975fcd22951f9d3738 (plain)
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
126
127
128
129
130
131
132
# -*- python -*-
# ex: set syntax=python:

import os

from buildbot.buildslave import BuildSlave
from buildbot.revlinks import RevlinkMatch, RevlinkMultiplexer
from buildbot.status import html, words, mail
from buildbot.status.web import authz, auth

from passwords import SlavePassword, IRCPassword
from gitmaildirsource import GitMaildirSource
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 = {}

####### BUILDSLAVES

# The 'slaves' list defines the set of recognized buildslaves. Each element is
# a BuildSlave object, specifying a unique slave name and password.  The same
# slave name and password must be configured on the slave.

c['slaves'] = [BuildSlave("allegra", SlavePassword("allegra"), max_builds=1)]

c['slavePortnum'] = 9989

####### CHANGESOURCES

c['change_source'] = []
c['change_source'].append(GitMaildirSource('/var/lib/buildbot/Maildir'))
c['change_source'].extend(ChangeSourceList())

c['mergeRequests'] = False

####### REVLINKS

c['revlink'] = RevlinkMultiplexer(
                 RevlinkMatch([r'git://anongit.freedesktop.org/git/(.*)'],
                              r'http://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']))

####### STATUS TARGETS

# 'status' is a list of Status Targets. The results of each build will be
# pushed to these targets. buildbot/status/*.py has a variety to choose from,
# including web pages, email senders, and IRC bots.

c['status'] = []

authz_cfg=authz.Authz(
    # change any of these to True to enable; see the manual for more
    # options
    gracefulShutdown = False,
    forceBuild = True,
    forceAllBuilds = False,
    pingBuilder = False,
    stopBuild = True,
    stopAllBuilds = False,
    cancelPendingBuild = False,
)

# a web server which shows the build status
c['status'].append(html.WebStatus(http_port=8010, authz=authz_cfg, order_console_by_time=True,
                                  change_hook_dialects={'poller' : True}))

# an irc bot which reports build status

irc = words.IRC("chat.freenode.org", "medusabot",
                channels=["cygwin-bots"],
                password=IRCPassword(),
                notify_events={
                       'exception': 1,
                       'successToFailure': 1,
                       'failureToSuccess': 1,
                },
                allowForce=True)

c['status'].append(irc)

# email notification of status change

c['status'].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",
}