aboutsummaryrefslogtreecommitdiff
path: root/buildbot/master-lonelyslave.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'buildbot/master-lonelyslave.cfg')
-rw-r--r--buildbot/master-lonelyslave.cfg161
1 files changed, 161 insertions, 0 deletions
diff --git a/buildbot/master-lonelyslave.cfg b/buildbot/master-lonelyslave.cfg
new file mode 100644
index 0000000..f9e1894
--- /dev/null
+++ b/buildbot/master-lonelyslave.cfg
@@ -0,0 +1,161 @@
+# -*- python -*-
+# ex: set syntax=python:
+
+c = BuildmasterConfig = {}
+local = "${HOME}/local"
+
+####### LOGS SIZE
+
+c['changeHorizon'] = 20
+c['buildHorizon'] = 10
+c['logHorizon'] = 4
+c['buildCacheSize'] = 2
+
+####### BUILDSLAVES
+
+from buildbot.worker import Worker
+c['workers'] = [Worker("lonelySlave", "taler"),
+ Worker("lcovSlave", "taler"),
+ Worker("containersSlave", "taler")]
+
+c['protocols'] = {'pb': {'port': 9989}}
+
+####### CHANGESOURCES
+# They are just "pointers" to monitored codebases.
+
+
+from buildbot.changes.gitpoller import GitPoller
+c['change_source'] = []
+c['change_source'].append(GitPoller(
+ 'git://git.taler.net/exchange.git',
+ workdir='gitpoller-workdir', branches=True,
+ pollinterval=300))
+c['change_source'].append(GitPoller(
+ 'git://git.taler.net/merchant.git',
+ workdir='gitpoller-workdir', branches=True,
+ pollinterval=300))
+c['change_source'].append(GitPoller(
+ 'git://git.taler.net/bank.git',
+ workdir='gitpoller-workdir', branches=True,
+ pollinterval=300))
+c['change_source'].append(GitPoller(
+ 'git://git.taler.net/merchant-frontends.git',
+ workdir='gitpoller-workdir', branches=True,
+ pollinterval=300))
+
+####### SCHEDULERS
+# They take action: actually trigger the build.
+
+from buildbot.schedulers.basic import SingleBranchScheduler
+from buildbot.schedulers.forcesched import ForceScheduler
+from buildbot.schedulers.timed import *
+from buildbot.changes import filter
+
+c['schedulers'] = []
+gitMaster = SingleBranchScheduler(
+ name="global-master",
+ reason="Commit pushed for one of the sub-projects",
+ change_filter=filter.ChangeFilter(branch='master'),
+ treeStableTimer=300,
+ builderNames=["lone-builder", "lcov-build"])
+
+force = ForceScheduler(name="force-build",
+ builderNames=["lone-builder", "lcov-build"])
+
+# For now, the whole withdraw/pay cliking is started manually
+# (as the blue-green infrastructure needs some upgrading)
+forceClick = ForceScheduler(
+ name="force-clicking",
+ builderNames=["auto-click"])
+
+
+c['schedulers'] = [force, gitMaster, forceClick]
+
+####### BUILDERS
+# They know *how* to build: which scripts need to be invoked,
+# where in the filesystem..
+
+from buildbot.process.factory import BuildFactory
+from buildbot.steps.source.git import Git
+from buildbot.steps.shell import ShellCommand
+from buildbot.steps.shell import Configure
+from buildbot.steps.shell import Compile
+from buildbot.steps.shell import Test
+import os
+
+lonelyness = BuildFactory()
+lonelyness.addStep(Git(repourl='git://git.taler.net/deployment.git',
+ mode='full',
+ method='fresh',
+ alwaysUseLatest=True,
+ haltOnFailure=True,
+ branch='master'))
+lonelyness.addStep(ShellCommand(name="builder",
+ description="Lone compilation..",
+ descriptionDone="Compilation passed",
+ command=["make"],
+ workdir="build/taler-build",
+ env={'PATH': "${HOME}/local/bin:${PATH}",
+ 'TALER_CHECKDB': "postgres:///talercheck-${USER}"}))
+lcov = BuildFactory()
+lcov.addStep(Git(repourl='git://git.taler.net/deployment.git',
+ mode='full',
+ method='fresh',
+ alwaysUseLatest=True,
+ haltOnFailure=True,
+ branch='master'))
+lcov.addStep(ShellCommand(name="invalidation",
+ description="Invalidating timestamps",
+ descriptionDone="timestamps invalidated",
+ command=["./invalidate.sh"],
+ workdir="build/taler-build"))
+lcov.addStep(ShellCommand(name="builder",
+ description="Compiling..",
+ descriptionDone="lcov files generated",
+ command=["make", "lcov"],
+ workdir="build/taler-build"))
+
+autoClick = BuildFactory()
+autoClick.addStep(ShellCommand(name="clicker",
+ description="Performing demo",
+ descriptionDone="Demo finished",
+ command=["launch_selenium_test.sh"],
+ env={'PATH': "${HOME}/deployment/docker/selenium:${PATH}"}))
+
+from buildbot.config import BuilderConfig
+
+c['builders'] = []
+c['builders'].append(
+ BuilderConfig(name="lone-builder",
+ workernames=["lonelySlave"],
+ factory=lonelyness))
+c['builders'].append(
+ BuilderConfig(name="lcov-build",
+ workernames=["lcovSlave"],
+ factory=lcov))
+c['builders'].append(
+ BuilderConfig(name="auto-click",
+ workernames=["containersSlave"],
+ factory=autoClick))
+
+
+####### STATUS TARGETS
+
+c['status'] = []
+from buildbot.plugins import util
+
+c['www'] = dict(port=8010,
+ plugins=dict(waterfall_view={},
+ console_view={}),
+ auth=util.UserPasswordAuth({"marcello": "taler"}))
+
+####### PROJECT IDENTITY
+c['title'] = "Taler"
+c['titleURL'] = "https://taler.net/"
+
+c['buildbotURL'] = "https://buildbot.taler.net/"
+
+####### DB URL
+c['db'] = {
+ 'db_url' : "sqlite:///state.sqlite",
+}