1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
# -*- python -*-
# ex: set syntax=python:
c = BuildmasterConfig = {}
local = "${HOME}/local"
####### BUILDSLAVES
from buildbot.buildslave import BuildSlave
c['slaves'] = [BuildSlave("testSlave", "taler"), BuildSlave("demoSlave", "taler")]
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', 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/deployment.git',
workdir='gitpoller-workdir', branches=True,
pollinterval=300))
####### SCHEDULERS
from buildbot.schedulers.basic import SingleBranchScheduler, Dependent
from buildbot.schedulers.forcesched import *
from buildbot.changes import filter
c['schedulers'] = []
# git_master = SingleBranchScheduler(
# name="exchange-master",
# reason="Commit pushed for one of the sub-projects",
# change_filter=filter.ChangeFilter(branch='master'),
# treeStableTimer=600,
# builderNames=["exchange-test-build"])
force = ForceScheduler(
name="force-build",
revision=FixedParameter(name="revision", default=""),
repository=FixedParameter(name="repository", default=""),
project=FixedParameter(name="project", default=""),
builderNames=["exchange-test-build"])
c['schedulers'] = [force]
####### 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
# Test builder
exchangeTestBuild = BuildFactory()
exchangeTestBuild.addStep(Git(repourl='git://git.taler.net/deployment.git',
mode='full',
method='fresh',
haltOnFailure=True,
branch='master'))
exchangeTestBuild.addStep(ShellCommand(
name="invalidation",
description="Invalidating timestamps",
descriptionDone="done",
command=["./invalidate.sh"],
workdir="build/taler-build"))
exchangeTestBuild.addStep(ShellCommand(
name="builder",
description="Building Taler",
descriptionDone="done",
command=["make"],
workdir="build/taler-build"))
from buildbot.config import BuilderConfig
c['builders'] = []
c['builders'].append(
BuilderConfig(name="exchange-test-build",
slavenames=["testSlave"],
factory=exchangeTestBuild))
####### 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",
}
|