From 81243afbea5811ce9f9b0ca9c22370ed77cc7077 Mon Sep 17 00:00:00 2001 From: Erik Mackdanz Date: Wed, 30 Oct 2024 02:00:41 +0000 Subject: [PATCH] import and indentation tweaks for conciseness --- master.cfg | 387 +++++++++++++++++++++++++---------------------------- 1 file changed, 182 insertions(+), 205 deletions(-) diff --git a/master.cfg b/master.cfg index 79a56d0..5e59613 100644 --- a/master.cfg +++ b/master.cfg @@ -1,15 +1,15 @@ # -*- python -*- -# ex: set filetype=python: -from buildbot.plugins import * +from buildbot.plugins import changes, reporters, schedulers, secrets, steps, util, worker +from buildbot.config.builder import BuilderConfig +from buildbot.steps.source.git import Git +from buildbot.steps.shell import ShellCommand +from buildbot.steps.trigger import Trigger +from buildbot.process.factory import BuildFactory +from buildbot.process.properties import Secret from twisted.internet import defer from buildbot.process import buildstep -# 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 = {} ####### SECRETS @@ -18,29 +18,18 @@ c['secretsProviders'] = [secrets.SecretInAFile(dirname="/var/lib/buildmaster/sec ####### 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.Worker("carbon-worker", - util.Secret("worker-carbon.pass"), - notify_on_missing=["erik@humopery.space","erikmack@gmail.com"], - missing_timeout=300 - )] - -# '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}} +c['workers'] = [worker.Worker( + "carbon-worker", + Secret("worker-carbon.pass"), + notify_on_missing=["erik@humopery.space","erikmack@gmail.com"], + missing_timeout=300 +)] + c['protocols'] = {'pb': { 'port': "ssl:9989:privateKey=privkey.pem:certKey=fullchain.pem"}} ####### 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( 'https://framagit.org/medoc92/npupnp.git', @@ -77,22 +66,19 @@ c['change_source'].append(changes.GitPoller( ####### PROJECTS +# doesn't do anything c['projects'] = [] c['projects'].append(util.Project( name='veilid', description='The veilid privacy network' )) - ####### 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.ForceScheduler( - name="force", - builderNames=["crawl","npupnp","libupnpp","upmpdcli","veilid"])) + name="force", + builderNames=["crawl","npupnp","libupnpp","upmpdcli","veilid"])) c['schedulers'].append(schedulers.ForceScheduler( name="force-two", buttonName="Run", @@ -120,64 +106,70 @@ c['schedulers'].append(schedulers.ForceScheduler( project=util.FixedParameter(name="project", default=""), ), ], - reason=util.StringParameter(name="reason", - label="reason:", - required=True, size=80), + reason=util.StringParameter( + name="reason", + label="reason:", + required=True, size=80), # in case you don't require authentication, this will display # input for user to type their name - username=util.UserNameParameter(label="your name:", - size=80), + username=util.UserNameParameter( + label="your name:", + size=80), # A completely customized property list. The name of the # property is the name of the parameter properties=[ - util.NestedParameter(name="options", label="Build Options", - layout="vertical", fields=[ - util.StringParameter(name="pull_url", - label="optionally give a public Git pull url:", - default="", size=80), - util.BooleanParameter(name="force_build_clean", - label="force a make clean", - default=False) + util.NestedParameter( + name="options", + label="Build Options", + layout="vertical", fields=[ + util.StringParameter( + name="pull_url", + label="optionally give a public Git pull url:", + default="", size=80), + util.BooleanParameter( + name="force_build_clean", + label="force a make clean", + default=False) ]) ] )) c['schedulers'].append(schedulers.SingleBranchScheduler( - name="npupnp", - change_filter=util.ChangeFilter(project="npupnp"), - treeStableTimer=None, - builderNames=["npupnp"])) + name="npupnp", + change_filter=util.ChangeFilter(project="npupnp"), + treeStableTimer=None, + builderNames=["npupnp"])) c['schedulers'].append(schedulers.SingleBranchScheduler( - name="libupnpp", - change_filter=util.ChangeFilter(project="libupnpp"), - treeStableTimer=None, - builderNames=["libupnpp"])) + name="libupnpp", + change_filter=util.ChangeFilter(project="libupnpp"), + treeStableTimer=None, + builderNames=["libupnpp"])) c['schedulers'].append(schedulers.SingleBranchScheduler( - name="upmpdcli", - change_filter=util.ChangeFilter(project="upmpdcli"), - treeStableTimer=None, - builderNames=["upmpdcli"])) + name="upmpdcli", + change_filter=util.ChangeFilter(project="upmpdcli"), + treeStableTimer=None, + builderNames=["upmpdcli"])) c['schedulers'].append(schedulers.SingleBranchScheduler( - name="veilid", - change_filter=util.ChangeFilter(project="veilid"), - treeStableTimer=None, - builderNames=["veilid"])) + name="veilid", + change_filter=util.ChangeFilter(project="veilid"), + treeStableTimer=None, + builderNames=["veilid"])) c['schedulers'].append(schedulers.SingleBranchScheduler( - name="crawl", - change_filter=util.ChangeFilter(project="crawl"), - treeStableTimer=None, - builderNames=["crawl"])) + name="crawl", + change_filter=util.ChangeFilter(project="crawl"), + treeStableTimer=None, + builderNames=["crawl"])) c['schedulers'].append(schedulers.Triggerable( - name="fetch-deps-stage", - builderNames=["fetch-deps-stage"])) + name="fetch-deps-stage", + builderNames=["fetch-deps-stage"])) c['schedulers'].append(schedulers.Triggerable( - name="build-frontend-job", - builderNames=["build-frontend-job"])) + name="build-frontend-job", + builderNames=["build-frontend-job"])) c['schedulers'].append(schedulers.Triggerable( - name="build-backend-job", - builderNames=["build-backend-job"])) + name="build-backend-job", + builderNames=["build-backend-job"])) ####### CUSTOM BUILD STEPS @@ -195,165 +187,150 @@ class HLedgerVersion(buildstep.ShellMixin, buildstep.BuildStep): ####### 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'] = [] -factory = util.BuildFactory() -factory.addStep(steps.ShellCommand(command=["echo", "hello"])) -c['builders'].append( - util.BuilderConfig(name="npupnp", - tags=["mpd"], - workernames=["carbon-worker"], - factory=factory)) - -factory = util.BuildFactory() -factory.addStep(steps.ShellCommand(command=["echo", "hello"])) -c['builders'].append( - util.BuilderConfig(name="libupnpp", - tags=["mpd"], - workernames=["carbon-worker"], - factory=factory)) - -factory = util.BuildFactory() -factory.addStep(steps.ShellCommand(command=["echo", "hello"])) -c['builders'].append( - util.BuilderConfig(name="upmpdcli", - tags=["mpd"], - workernames=["carbon-worker"], - factory=factory)) - -factory = util.BuildFactory() -factory.addStep(steps.Git(repourl='https://gitlab.com/veilid/veilid.git')) -factory.addStep( - steps.ShellCommand(name="build veilid-server", - command=["cargo","build","--release"], - workdir="build/veilid-server")) -factory.addStep( - steps.ShellCommand(name="copy veilid-server to lin0", - command=["scp","target/release/veilid-server","lin0:~"])) -factory.addStep( - steps.ShellCommand(name="build veilid-cli", - command=["cargo","build","--release"], - workdir="build/veilid-cli")) -factory.addStep( - steps.ShellCommand(name="copy veilid-cli to lin0", - command=["scp","target/release/veilid-cli","lin0:~"])) -c['builders'].append( - util.BuilderConfig(name="veilid", - tags=["veilid"], - workernames=["carbon-worker"], - factory=factory)) - -factory = util.BuildFactory() -factory.addStep(steps.ShellCommand(command=["echo", "hello"])) -c['builders'].append( - util.BuilderConfig(name="crawl", - tags=["crawl"], - workernames=["carbon-worker"], - factory=factory)) - -factory = util.BuildFactory() -factory.addStep(steps.Trigger(schedulerNames=["fetch-deps-stage"], - waitForFinish=True, - name="fetch-deps")) -factory.addStep(steps.Trigger(schedulerNames=["build-frontend-job","build-backend-job"], - waitForFinish=True, - name="build frontend and backend")) -factory.addStep(steps.ShellCommand(command=["echo", "hello", util.Secret("test.delete")],name="echo something")) -c['builders'].append( - util.BuilderConfig(name="stage-test", - tags=["stage-test","entry"], - workernames=["carbon-worker"], - factory=factory)) - -factory = util.BuildFactory() -factory.addStep(steps.ShellCommand(command=["echo", "hello"],name="echo")) -c['builders'].append( - util.BuilderConfig(name="fetch-deps-stage", - tags=["stage-test"], - workernames=["carbon-worker"], - factory=factory)) - -factory = util.BuildFactory() +factory = BuildFactory() +factory.addStep(ShellCommand(command=["echo", "hello"])) +c['builders'].append(BuilderConfig( + name="npupnp", + tags=["mpd"], + workernames=["carbon-worker"], + factory=factory)) + +factory = BuildFactory() +factory.addStep(ShellCommand(command=["echo", "hello"])) +c['builders'].append(BuilderConfig( + name="libupnpp", + tags=["mpd"], + workernames=["carbon-worker"], + factory=factory)) + +factory = BuildFactory() +factory.addStep(ShellCommand(command=["echo", "hello"])) +c['builders'].append(BuilderConfig( + name="upmpdcli", + tags=["mpd"], + workernames=["carbon-worker"], + factory=factory)) + +factory = BuildFactory() +factory.addStep(Git(repourl='https://gitlab.com/veilid/veilid.git')) +factory.addStep(ShellCommand( + name="build veilid-server", + command=["cargo","build","--release"], + workdir="build/veilid-server")) +factory.addStep(ShellCommand( + name="copy veilid-server to lin0", + command=["scp","target/release/veilid-server","lin0:~"])) +factory.addStep(ShellCommand( + name="build veilid-cli", + command=["cargo","build","--release"], + workdir="build/veilid-cli")) +factory.addStep(ShellCommand( + name="copy veilid-cli to lin0", + command=["scp","target/release/veilid-cli","lin0:~"])) +c['builders'].append(BuilderConfig( + name="veilid", + tags=["veilid"], + workernames=["carbon-worker"], + factory=factory)) + +factory = BuildFactory() +factory.addStep(ShellCommand(command=["echo", "hello"])) +c['builders'].append(BuilderConfig( + name="crawl", + tags=["crawl"], + workernames=["carbon-worker"], + factory=factory)) + +factory = BuildFactory() +factory.addStep(Trigger( + schedulerNames=["fetch-deps-stage"], + waitForFinish=True, + name="fetch-deps")) +factory.addStep(Trigger( + schedulerNames=["build-frontend-job","build-backend-job"], + waitForFinish=True, + name="build frontend and backend")) +factory.addStep(ShellCommand(command=["echo", "hello", Secret("test.delete")],name="echo something")) +c['builders'].append(BuilderConfig( + name="stage-test", + tags=["stage-test","entry"], + workernames=["carbon-worker"], + factory=factory)) + +factory = BuildFactory() +factory.addStep(ShellCommand(command=["echo", "hello"],name="echo")) +c['builders'].append(BuilderConfig( + name="fetch-deps-stage", + tags=["stage-test"], + workernames=["carbon-worker"], + factory=factory)) + +factory = BuildFactory() factory.addStep(HLedgerVersion(name="hledger version")) -factory.addStep(steps.ShellCommand(command=["sleep", "12"],name="sleep")) -factory.addStep(steps.ShellCommand(command=["exit", "1"],name="fail")) -c['builders'].append( - util.BuilderConfig(name="build-frontend-job", - tags=["stage-test"], - workernames=["carbon-worker"], - factory=factory)) -factory = util.BuildFactory() -factory.addStep(steps.ShellCommand(command=["sleep", "20"],name="sleep")) -c['builders'].append( - util.BuilderConfig(name="build-backend-job", - tags=["stage-test"], - workernames=["carbon-worker"], - factory=factory)) +factory.addStep(ShellCommand(command=["sleep", "12"],name="sleep")) +factory.addStep(ShellCommand(command=["exit", "1"],name="fail")) +c['builders'].append(BuilderConfig( + name="build-frontend-job", + tags=["stage-test"], + workernames=["carbon-worker"], + factory=factory)) +factory = BuildFactory() +factory.addStep(ShellCommand(command=["sleep", "20"],name="sleep")) +c['builders'].append(BuilderConfig( + name="build-backend-job", + tags=["stage-test"], + workernames=["carbon-worker"], + factory=factory)) ####### 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. - from buildbot.reporters.generators.build import BuildStatusGenerator from buildbot.reporters.generators.worker import WorkerMissingGenerator from buildbot.reporters.message import MessageFormatter from buildbot.reporters.message import MessageFormatterMissingWorker c['services'] = [] -mn = reporters.MailNotifier(fromaddr="Humopery Buildbot ", - sendToInterestedUsers=False, - relayhost="smtp.humopery.space", - smtpPort=465, - smtpUser="buildbot@humopery.space", - smtpPassword=util.Secret("unix.pass"), - useTls=True, - useSmtps=True, - extraRecipients=["erik@humopery.space","erikmack@gmail.com"], - generators=[ - BuildStatusGenerator( - add_patch=True, - message_formatter=MessageFormatter(template_type='html') - ), - WorkerMissingGenerator( - workers='all', - message_formatter=MessageFormatterMissingWorker(template_type='html') - ), - ] - ) +mn = reporters.MailNotifier( + fromaddr="Humopery Buildbot ", + sendToInterestedUsers=False, + relayhost="smtp.humopery.space", + smtpPort=465, + smtpUser="buildbot@humopery.space", + smtpPassword=Secret("unix.pass"), + useTls=True, + useSmtps=True, + extraRecipients=["erik@humopery.space","erikmack@gmail.com"], + generators=[ + BuildStatusGenerator( + add_patch=True, + message_formatter=MessageFormatter(template_type='html') + ), + WorkerMissingGenerator( + workers='all', + message_formatter=MessageFormatterMissingWorker(template_type='html') + ), + ] +) c['services'].append(mn) - ####### PROJECT IDENTITY -# the 'title' string will appear at the top of this buildbot installation's -# home pages (linked to the 'titleURL'). - c['title'] = "Humopery CI" c['titleURL'] = "https://bb.humopery.space/" - -# 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://bb.humopery.space/" -# minimalistic config to activate new web UI +####### WEB INTERFACE + # c['www'] = dict(port=8010, # plugins=dict(waterfall_view={}, console_view={}, grid_view={})) -c['www'] = dict(port=8010) +c['www'] = { + 'port' : 8010 +} ####### 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' : "sqlite:///state.sqlite", + 'db_url' : "sqlite:///state.sqlite" } -- 2.52.0