summaryrefslogtreecommitdiff
path: root/buildbot/master.cfg
diff options
context:
space:
mode:
authorMarcello Stanisci <marcello.stanisci@inria.fr>2017-02-17 15:36:21 +0100
committerMarcello Stanisci <marcello.stanisci@inria.fr>2017-02-17 15:36:21 +0100
commit1335c163026a7aea4e50f2782044dccbf720250c (patch)
treef11058915d62d8cb1203e97a7dfa4545e3d89b6f /buildbot/master.cfg
parenteeb9ecf7c2eaaeff8024c1a44878f7d8653f1d48 (diff)
downloaddeployment-1335c163026a7aea4e50f2782044dccbf720250c.tar.gz
deployment-1335c163026a7aea4e50f2782044dccbf720250c.tar.bz2
deployment-1335c163026a7aea4e50f2782044dccbf720250c.zip
Refactoring buildbot
Diffstat (limited to 'buildbot/master.cfg')
-rw-r--r--buildbot/master.cfg79
1 files changed, 66 insertions, 13 deletions
diff --git a/buildbot/master.cfg b/buildbot/master.cfg
index cc30d66..54213be 100644
--- a/buildbot/master.cfg
+++ b/buildbot/master.cfg
@@ -15,7 +15,8 @@ c = BuildmasterConfig = {}
# 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")]
+c['workers'] = [worker.Worker("lcov-worker", "lcov-pass"),
+ worker.Worker("selenium-worker", "selenium-pass")]
# 'protocols' contains information about protocols which master will use for
# communicating with workers. You must define at least 'port' option that workers
@@ -31,7 +32,15 @@ c['protocols'] = {'pb': {'port': 9989}}
c['change_source'] = []
c['change_source'].append(changes.GitPoller(
- 'git://github.com/buildbot/pyflakes.git',
+ 'git://taler.net/wallet-webex',
+ workdir='gitpoller-workdir', branch='master',
+ pollinterval=300))
+c['change_source'].append(changes.GitPoller(
+ 'git://taler.net/merchant',
+ workdir='gitpoller-workdir', branch='master',
+ pollinterval=300))
+c['change_source'].append(changes.GitPoller(
+ 'git://taler.net/exchange',
workdir='gitpoller-workdir', branch='master',
pollinterval=300))
@@ -45,10 +54,10 @@ c['schedulers'].append(schedulers.SingleBranchScheduler(
name="all",
change_filter=util.ChangeFilter(branch='master'),
treeStableTimer=None,
- builderNames=["runtests"]))
+ builderNames=["lcov-builder", "selenium-builder"]))
c['schedulers'].append(schedulers.ForceScheduler(
name="force",
- builderNames=["runtests"]))
+ builderNames=["lcov-builder", "selenium-builder"]))
####### BUILDERS
@@ -56,17 +65,47 @@ c['schedulers'].append(schedulers.ForceScheduler(
# what steps, and which workers can execute them. Note that any particular build will
# only take place on one worker.
-factory = util.BuildFactory()
-# check out the source
-factory.addStep(steps.Git(repourl='git://github.com/buildbot/pyflakes.git', mode='incremental'))
-# run the tests (note that this will require that 'trial' is installed)
-factory.addStep(steps.ShellCommand(command=["trial", "pyflakes"]))
-
+# FIXME: the bad side of these builders is that they expect the worker's environment
+# to be _already_ set up (codedbases, scripts, etc). In other words, it's not "self-contained".
+
+lcov_factory = util.BuildFactory()
+
+lcov_factory.addStep(Git(repourl='git://git.taler.net/deployment.git',
+ mode='full',
+ method='fresh',
+ alwaysUseLatest=True,
+ haltOnFailure=True,
+ branch='master'))
+lcov_factory.addStep(ShellCommand(name="invalidation",
+ description="Invalidating timestamps",
+ descriptionDone="timestamps invalidated",
+ command=["./invalidate.sh"],
+ workdir="build/taler-build"))
+lcov_factory.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"}))
+
+selenium_factory = util.BuildFactory()
+selenium_factory.addStep(ShellCommand(name="selenium",
+ description="Headless browser test",
+ descriptionDone="Test finished",
+ command=["launch_selenium_test"],
+ env={'PATH': "${HOME}/local/bin:${PATH}"}))
c['builders'] = []
+
+c['builders'].append(
+ util.BuilderConfig(name="lcov-builder",
+ workernames=["lcov-worker"],
+ factory=lcov_factory))
+
c['builders'].append(
- util.BuilderConfig(name="runtests",
- workernames=["example-worker"],
- factory=factory))
+ util.BuilderConfig(name="selenium-builder",
+ workernames=["selenium-worker"],
+ factory=selenium_factory))
####### BUILDBOT SERVICES
@@ -76,6 +115,20 @@ c['builders'].append(
c['services'] = []
+c['services'] = []
+
+from buildbot.plugins import reporters
+irc = reporters.IRC("irc.eu.freenode.net", "taler-bb",
+ useColors=False,
+ channels=[{"channel": "#taler"}],
+ password="taler-bb-pass19",
+ notify_events={
+ 'exception': 1,
+ 'successToFailure': 1,
+ 'failureToSuccess': 1,
+})
+c['services'].append(irc)
+
####### PROJECT IDENTITY
# the 'title' string will appear at the top of this buildbot installation's