# -*- python -*- # ex: set syntax=python: c = BuildmasterConfig = {} local = "${HOME}/local" ####### BUILDSLAVES from buildbot.buildslave import BuildSlave c['slaves'] = [BuildSlave("testSlave", "taler"), BuildSlave("demoSlave", "taler")] slaveNames = ["testSlave", "demoSlave"] c['protocols'] = {'pb': {'port': 9989}} ####### CHANGESOURCES from buildbot.changes.gitpoller import GitPoller c['change_source'] = [] c['change_source'].append(GitPoller( 'git://git.taler.net/exchange.git', workdir='gitpoller-workdir', branch='master', pollinterval=300)) ####### SCHEDULERS from buildbot.schedulers.basic import SingleBranchScheduler, Dependent from buildbot.schedulers.forcesched import * from buildbot.changes import filter c['schedulers'] = [] git = SingleBranchScheduler( name="exchange-commit", reason="Commit pushed to the git repository", change_filter=filter.ChangeFilter(branch='master'), treeStableTimer=600, builderNames=["exchange-build"]) force = ForceScheduler( name="force-build", revision=FixedParameter(name="revision", default=""), repository=FixedParameter(name="repository", default=""), project=FixedParameter(name="project", default=""), builderNames=["exchange-build","exchange-perf"]) successful = Dependent( name="exchange-perf", upstream=git, builderNames=["exchange-perf"]) c['schedulers'] = [git, force, successful] ####### BUILDERS 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 # Compilation, installation and tests of Taler exchangeBuild = BuildFactory() exchangeBuild.addStep(Git(repourl='git://git.taler.net/exchange.git', mode='full', method = 'fresh')) exchangeBuild.addStep(ShellCommand( name="bootstrap", description="bootstraping", descriptionDone="bootstraped", command=["./bootstrap"], hideStepIf=True)) exchangeBuild.addStep(Configure(command=["./configure", "--prefix="+local, "--with-gnunet=+local"])) exchangeBuild.addStep(Compile(command=["make"])) exchangeBuild.addStep(ShellCommand(name="Install", description="Installing", command=["make", "install"])) # Starting from a clean database exchangeBuild.addStep(ShellCommand(name="Drop database", command=["psql", "-c", "DROP DATABASE talercheck"], hideStepIf=True, flunkOnFailure=False)) exchangeBuild.addStep(ShellCommand(name="Create database", command=["psql", "-c", "CREATE DATABASE talercheck"], hideStepIf=True)) # run the tests exchangeBuild.addStep(Test(command=["make","check"], env={'PATH':local + "/bin:" + os.environ['PATH']})) # running the performence tests for Taler exchangePerf = BuildFactory() # compile exchangePerf.addStep(Git(repourl='git://git.taler.net/exchange.git', mode='full', method = 'fresh')) exchangePerf.addStep(ShellCommand( name="bootstrap", description="bootstraping", descriptionDone="bootstraped", command=["./bootstrap"], hideStepIf=True)) exchangePerf.addStep(Configure(command=["./configure", "--prefix="+local, "--with-gnunet=+local"])) exchangePerf.addStep(Compile(command=["make"])) exchangePerf.addStep(Compile(command=["make","-C","src/exchangedb/","perf-exchangedb"])) # create the database anew exchangePerf.addStep(ShellCommand(name="Drop database", command=["psql", "-c", "DROP DATABASE talercheck"], hideStepIf=True)) exchangePerf.addStep(ShellCommand(name="Create database", command=["psql", "-c", "CREATE DATABASE talercheck"], hideStepIf=True)) # Run the performance tests exchangePerf.addStep(ShellCommand(name="perf-measure", description="measuring", descriptionDone="measured", command=["./perf-exchangedb"], workdir="build/src/exchangedb", timeout=None)) from buildbot.config import BuilderConfig c['builders'] = [] c['builders'].append( BuilderConfig(name="exchange-build", slavenames=slaveNames, factory=exchangeBuild)) c['builders'].append( BuilderConfig(name="exchange-perf", slavenames=slaveNames, factory=exchangePerf)) ####### STATUS TARGETS c['status'] = [] from buildbot.status import html from buildbot.status.web import authz, auth authz_cfg=authz.Authz( # change any of these to True to enable; see the manual for more # options auth=auth.BasicAuth([("marcello","taler")]), gracefulShutdown = False, forceBuild = 'auth', # use this to test your slave once it is set up forceAllBuilds = False, pingBuilder = False, stopBuild = False, stopAllBuilds = False, cancelPendingBuild = False, ) c['status'].append(html.WebStatus(http_port=8010, authz=authz_cfg)) ####### PROJECT IDENTITY c['title'] = "Taler" c['titleURL'] = "http://taler.net" c['buildbotURL'] = "http://buildbot.taler.net" ####### DB URL c['db'] = { 'db_url' : "sqlite:///state.sqlite", }