# -*- 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
####### 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',
####### 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",
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
####### 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 <buildbot@humopery.space>",
- 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 <buildbot@humopery.space>",
+ 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"
}