# -*- 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'