diff options
Diffstat (limited to 'buildbot/master-lonelyslave.cfg')
-rw-r--r-- | buildbot/master-lonelyslave.cfg | 161 |
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", +} |