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
|
# MUST EDIT
#
# * The list of slaves
# * The slavenames of the builder
# * The auth password
c = BuildmasterConfig = {}
# Slaves
from buildbot.buildslave import BuildSlave
c["slaves"] = [BuildSlave("myslave", "password")]
c["slavePortnum"] = 9989
# Change sources
from buildbot.changes.gitpoller import GitPoller
repos = { "sugar": "sugar/mainline.git",
"sugar-base": "sugar-base/mainline.git",
"sugar-toolkit": "sugar-toolkit/mainline.git",
"sugar-datastore": "sugar-datastore/mainline.git",
"sugar-artwork": "sugar-artwork/mainline.git",
"sugar-toolkit-gtk3": "sugar-toolkit-gtk3/sugar-toolkit-gtk3.git",
"web": "web/mainline.git",
"terminal": "terminal/mainline.git" }
c["change_source"] = []
for name, path in repos.items():
c["change_source"].append(GitPoller("git://git.sugarlabs.org/%s" % path,
project="sugar",
workdir="gitpoller_work/%s" % name))
# Schedulers
from buildbot.schedulers.basic import SingleBranchScheduler
from buildbot.schedulers.forcesched import ForceScheduler
from buildbot.changes import filter
c["schedulers"] = []
change_filter = filter.ChangeFilter(project="sugar")
c["schedulers"].append(SingleBranchScheduler(name="all",
change_filter=change_filter,
builderNames=["build"]))
c["schedulers"].append(ForceScheduler(name="force",
builderNames=["build"]))
# Builders
from buildbot.process.factory import BuildFactory
from buildbot.steps.source import Git
from buildbot.steps.shell import Compile
factory = BuildFactory()
factory.addStep(Git(repourl="git://github.com/dnarvaez/sugar-build",
mode="copy"))
factory.addStep(Compile(command=["make", "build"]))
from buildbot.config import BuilderConfig
c["builders"] = []
c["builders"].append(BuilderConfig(name="build",
slavenames=["myslave"],
factory=factory))
# Status targets
c["status"] = []
from buildbot.status import html
from buildbot.status.web import authz, auth
authz_cfg = authz.Authz(auth=auth.BasicAuth([("admin","password")]),
forceBuild="auth")
c["status"].append(html.WebStatus(http_port=8010, authz=authz_cfg))
# Project identity
c["title"] = "Sugar"
c["titleURL"] = "http://sugarlabs.org"
c["buildbotURL"] = "http://localhost:8010/"
# Sqlite
c["db"] = {"db_url" : "sqlite:///state.sqlite"}
|