From c334380e6228ebbdc6ef35a05171892b100ff628 Mon Sep 17 00:00:00 2001 From: Marcello Stanisci Date: Thu, 16 Feb 2017 13:53:54 +0100 Subject: Polishing Buildbot master. --- buildbot/master-lonelyslave.cfg | 172 ---------------------------------------- buildbot/master.cfg | 147 ++++++++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+), 172 deletions(-) delete mode 100644 buildbot/master-lonelyslave.cfg create mode 100644 buildbot/master.cfg (limited to 'buildbot') diff --git a/buildbot/master-lonelyslave.cfg b/buildbot/master-lonelyslave.cfg deleted file mode 100644 index fd82b97..0000000 --- a/buildbot/master-lonelyslave.cfg +++ /dev/null @@ -1,172 +0,0 @@ -# -*- 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 - -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", "auto-click"]) - -force = ForceScheduler(name="force-build", - builderNames=["lone-builder", "lcov-build", "auto-click"]) - -c['schedulers'] = [force, gitMaster] - -####### 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 - -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="invalidation", - description="Invalidating timestamps", - descriptionDone="timestamps invalidated", - command=["./invalidate.sh"], - workdir="build/taler-build")) -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' : "postgresql:///talercheck?host=/home/${USER}/sockets"})) -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", - env={'PATH': "${HOME}/local/bin:${PATH}", - 'TALER_CHECKDB' : "postgresql:///talercheck?host=/home/${USER}/sockets"})) - -autoClick = BuildFactory() -autoClick.addStep(ShellCommand(name="clicker", - description="Performing demo", - descriptionDone="Demo finished", - command=["launch_selenium_test"], - env={'PATH': "${HOME}/local/bin:${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 - -authz = util.Authz( - allowRules=[ - util.StopBuildEndpointMatcher(role="admins"), - util.ForceBuildEndpointMatcher(role="admins"), - util.RebuildBuildEndpointMatcher(role="admins") - ], - roleMatchers=[ - util.RolesFromEmails(admins=["marcello.stanisci@inria.fr"]) - ] -) - -auth=util.UserPasswordAuth({'marcello.stanisci@inria.fr': 'mstantaler'}) - -c['www'] = dict(port=8010, - plugins=dict(waterfall_view={}, console_view={}), - auth=auth, - authz=authz) - - -####### 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", -} diff --git a/buildbot/master.cfg b/buildbot/master.cfg new file mode 100644 index 0000000..6e8b657 --- /dev/null +++ b/buildbot/master.cfg @@ -0,0 +1,147 @@ +# -*- 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("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 + +gitMaster = SingleBranchScheduler( + name="global-master", + reason="Commit pushed for one of the sub-projects", + change_filter=filter.ChangeFilter(branch='master'), + treeStableTimer=300, + builderNames=["lcov-build", "auto-click"]) + +force = ForceScheduler(name="force-build", + builderNames=["lcov-build", "auto-click"]) + +c['schedulers'] = [force, gitMaster] + +####### 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 + +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", + env={'PATH': "${HOME}/local/bin:${PATH}", + 'TALER_CHECKDB' : "postgresql:///talercheck?host=/home/${USER}/sockets"})) + +autoClick = BuildFactory() +autoClick.addStep(ShellCommand(name="clicker", + description="Performing demo", + descriptionDone="Demo finished", + command=["launch_selenium_test"], + env={'PATH': "${HOME}/local/bin:${PATH}"})) + +from buildbot.config import BuilderConfig + +c['builders'] = [] +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 + +authz = util.Authz( + allowRules=[ + util.StopBuildEndpointMatcher(role="admins"), + util.ForceBuildEndpointMatcher(role="admins"), + util.RebuildBuildEndpointMatcher(role="admins") + ], + roleMatchers=[ + util.RolesFromEmails(admins=["marcello.stanisci@inria.fr"]) + ] +) + +auth=util.UserPasswordAuth({'marcello.stanisci@inria.fr': 'mstantaler'}) + +c['www'] = dict(port=8010, + plugins=dict(waterfall_view={}, console_view={}), + auth=auth, + authz=authz) + + +####### 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", +} -- cgit v1.2.3