# -*- python -*- # ex: set filetype=python: import os 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 = {} GITEA_SECRET = os.environ.get("GITEA_SECRET") ####### 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("example-worker", "pass")] if "BUILDBOT_MQ_URL" in os.environ: c["mq"] = { "type": "wamp", "router_url": os.environ["BUILDBOT_MQ_URL"], "realm": os.environ.get("BUILDBOT_MQ_REALM", "buildbot").decode("utf-8"), "debug": "BUILDBOT_MQ_DEBUG" in os.environ, "debug_websockets": "BUILDBOT_MQ_DEBUG" in os.environ, "debug_lowlevel": "BUILDBOT_MQ_DEBUG" in os.environ, } # '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": os.environ.get("BUILDBOT_WORKER_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 clone of radn. c["change_source"] = [] c["change_source"].append( changes.GitPoller( "https://gitea.parrrate.ru/PTV/radn-rs.git", workdir="gitpoller-workdir", branch="main", pollinterval=10, ) ) ####### 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="main"), treeStableTimer=None, builderNames=["runtests"], ) ) if GITEA_SECRET: c["schedulers"].append( schedulers.SingleBranchScheduler( name="all-gitea", change_filter=util.ChangeFilter(branch="main"), treeStableTimer=None, builderNames=["runtests"], ) ) c["schedulers"].append( schedulers.ForceScheduler(name="force", builderNames=["runtests"]) ) ####### 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. # all_repositories = { # r"https://gitea.parrrate.ru/PTV/radn-rs.git": "radn-rs", # } # def codebaseGenerator(chdict): # return all_repositories.get(chdict["repository"]) # c["codebaseGenerator"] = codebaseGenerator c["builders"] = [] factory = util.BuildFactory() factory.addStep( steps.Git(repourl="https://gitea.parrrate.ru/PTV/radn-rs.git", mode="incremental") ) factory.addStep(steps.ShellCommand(command=["cargo", "test"])) c["builders"].append( util.BuilderConfig(name="runtests", workernames=["example-worker"], factory=factory) ) if GITEA_SECRET: factory = util.BuildFactory() factory.addStep( steps.Gitea( repourl="https://gitea.parrrate.ru/PTV/radn-rs.git", mode="incremental", branch="main", codebase="radn-rs", progress=True, logEnviron=False, ) ) factory.addStep(steps.ShellCommand(command=["cargo", "test"])) c["builders"].append( util.BuilderConfig( name="runtests-gitea", workernames=["example-worker"], factory=factory ) ) ####### REPORTER TARGETS # 'services' is a list of Reporter Targets. The results 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"] = "RADN" c["titleURL"] = "https://gitea.parrrate.ru/PTV/radn-rs" # 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"] = os.environ.get("BUILDBOT_WEB_URL", "http://localhost:8010/") # minimalistic config to activate new web UI c["www"] = { "port": os.environ.get("BUILDBOT_WEB_PORT", 8010), "plugins": { "waterfall_view": {}, "console_view": {}, }, "change_hook_dialects": {}, } if GITEA_SECRET: c["www"]["change_hook_dialects"]["gitea"] = { "secret": GITEA_SECRET, "onlyIncludePushCommit": True, } c["services"].append( reporters.GiteaStatusPush( "https://gitea.parrrate.ru", GITEA_SECRET, verbose=True ), ) ####### 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": os.environ.get("BUILDBOT_DB_URL", "sqlite://").format(**os.environ), } c["buildbotNetUsageData"] = None