-
Notifications
You must be signed in to change notification settings - Fork 36
/
master.cfg
113 lines (92 loc) · 3.62 KB
/
master.cfg
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
# -*- python -*-
# ex: set syntax=python:
# first, reload each module by name
import slaves
import schedulers
import builders
import status
reload(slaves)
reload(schedulers)
reload(builders)
reload(status)
# then import the relevant symbols from those modules
from slaves import slaves
from schedulers import schedulers
from builders import builders
from status import status
# This is the dictionary that the buildmaster pays attention to.
c = BuildmasterConfig = {}
c['slaves'] = slaves
c['schedulers'] = schedulers
c['builders'] = builders
c['status'] = status
# ###### PROJECT IDENTITY
# the 'title' string will appear at the top of this buildbot
# installation's html.WebStatus home page (linked to the
# 'titleURL') and is embedded in the title of the waterfall HTML page.
c['title'] = "Ethereum"
c['titleURL'] = "https://ethereum.org"
# the 'buildbotURL' string should point to the location where the buildbot's
# internal web server (usually the html.WebStatus page) is visible. This
# typically uses the port number set in the Waterfall 'status' entry, but
# with an externally-visible host name which the buildbot cannot figure out
# without some help.
c['buildbotURL'] = "https://builds.ethereum.org/"
# ###### DB URL
c['db'] = {
# This specifies what database buildbot uses to store its state.
# You can leave this at its default for all but the
# largest installations.
'db_url': "sqlite:///state.sqlite",
}
# 'protocols' contains information about protocols which master will use for
# communicating with slaves.
# You must define at least 'port' option that slaves could connect to your
# master with this protocol.
# 'port' must match the value configured into the buildslaves (with their
# --master option)
c['protocols'] = {'pb': {'port': 9989}}
# ###### CHANGESOURCES
# the 'change_source' setting tells the buildmaster how it should find out
# about source code changes.
all_repositories = {
r'https://github.com/ethereum/ethereum-buildbot.git': 'ethereum-buildbot',
r'https://github.com/ethereum/ethereum-dockers.git': 'ethereum-dockers',
r'https://github.com/ethereum/cpp-ethereum.git': 'cpp-ethereum',
r'https://github.com/ethereum/go-ethereum.git': 'go-ethereum',
r'https://github.com/ethereum/mist.git': 'mist',
r'https://github.com/ethereum/ethereumj.git': 'ethereumj',
r'https://github.com/ethereum/pyethereum.git': 'pyethereum',
r'https://github.com/ethereum/pyethapp.git': 'pyethapp',
r'https://github.com/ethereum/serpent.git': 'serpent',
r'https://github.com/ethereum/tests.git': 'tests',
r'https://github.com/ethereum/homebrew-ethereum.git': 'homebrew-ethereum',
r'https://github.com/etherex/etherex.git': 'integration'
}
# Codebase generator
def codebaseGenerator(chdict):
return all_repositories[chdict['repository']]
c['codebaseGenerator'] = codebaseGenerator
# Builder priorities
def prioritizeBuilders(buildmaster, builders):
builderPriorities = {
"Linux C++ master branch": 0,
"Linux C++ develop branch": 1,
"Linux Go master branch": 0,
"Linux Go develop branch": 1,
"OSX C++ master branch": 0,
"OSX C++ master brew": 2,
"OSX C++ develop branch": 1,
"OSX C++ develop brew": 2,
"OSX Go master branch": 0,
"OSX Go master brew": 2,
"OSX Go develop branch": 1,
"OSX Go develop brew": 2,
"Windows C++ master branch": 0,
"Windows C++ develop branch": 1,
"Windows Go master branch": 0,
"Windows Go develop branch": 1
}
builders.sort(key=lambda b: builderPriorities.get(b.name, 3))
return builders
c['prioritizeBuilders'] = prioritizeBuilders