# -*- python -*- # ex: set filetype=python: from buildbot.plugins import * # This is a sample buildmaster config file. It must be installed as # 'master.cfg' in your buildmaster's base directory. # This is the dictionary that the buildmaster pays attention to. We also use # a shorter alias to save typing. c = BuildmasterConfig = {} ####### WORKERS # The 'workers' list defines the set of recognized workers. Each element is # a Worker object, specifying a unique worker name and password. The same # worker name and password must be configured on the worker. c['workers'] = [ worker.LocalWorker("local-worker",max_builds=1) ] # 'protocols' contains information about protocols which master will use for # communicating with workers. You must define at least 'port' option that workers # could connect to your master with this protocol. # 'port' must match the value configured into the workers (with their # --master option) c['protocols'] = {'pb': {'port': 9989}} ####### CHANGESOURCES # the 'change_source' setting tells the buildmaster how it should find out # about source code changes. Here we point to the buildbot version of a python hello-world project. c['change_source'] = [] #c['change_source'].append(changes.GitPoller( # 'git://github.com/buildbot/hello-world.git', # workdir='gitpoller-workdir', branch='master', # pollInterval=300)) ####### SCHEDULERS # Configure the Schedulers, which decide how to react to incoming changes. In this # case, just kick off a 'runtests' build c['schedulers'] = [] c['schedulers'].append(schedulers.SingleBranchScheduler( name="all", change_filter=util.ChangeFilter(branch='master'), treeStableTimer=None, builderNames={{buildbot_builders.keys()}})) c['schedulers'].append(schedulers.ForceScheduler( name="force", builderNames={{buildbot_builders.keys()}})) ####### BUILDERS # The 'builders' list defines the Builders, which tell Buildbot how to perform a build: # what steps, and which workers can execute them. Note that any particular build will # only take place on one worker. c['builders'] = [] {% for builder_name in buildbot_builders.keys() %} {% set builder = buildbot_builders[builder_name] %} factory = util.BuildFactory() {% for repo in builder.repos %} factory.addStep(steps.GitHub( name='{{repo.name}}', repourl='{{repo.repourl}}', mode='incremental', workdir='{{repo.workdir}}', alwaysUseLatest=True, )) {% endfor %} {% for cmd in builder.shell_commands %} factory.addStep(steps.ShellCommand( name='{{cmd.name}}', command='{{cmd.command}}', workdir='{{cmd.workdir}}', )) {% endfor %} c['builders'].append( util.BuilderConfig( name="{{builder_name}}", workernames=["local-worker"], factory=factory ) ) {% endfor %} ####### BUILDBOT SERVICES # 'services' is a list of BuildbotService items like reporter targets. The # status of each build will be pushed to these targets. buildbot/reporters/*.py # has a variety to choose from, like IRC bots. c['services'] = [] ####### PROJECT IDENTITY # the 'title' string will appear at the top of this buildbot installation's # home pages (linked to the 'titleURL'). c['title'] = "covid-videoplattform CICD" c['titleURL'] = "https://github.com/covid-videoplattform" # the 'buildbotURL' string should point to the location where the buildbot's # internal web server is visible. This typically uses the port number set in # the 'www' entry below, but with an externally-visible host name which the # buildbot cannot figure out without some help. c['buildbotURL'] = "https://{{buildbot_server_name}}/" # minimalistic config to activate new web UI c['www'] = dict( port=8010, plugins = dict( waterfall_view={}, console_view={}, grid_view={} ), change_hook_dialects={ 'github': {} }, ) ####### DB URL c['db'] = { # This specifies what database buildbot uses to store its state. # It's easy to start with sqlite, but it's recommended to switch to a dedicated # database, such as PostgreSQL or MySQL, for use in production environments. # http://docs.buildbot.net/current/manual/configuration/global.html#database-specification 'db_url' : "{{buildbot_database_url}}", }