20
20
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
21
21
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22
22
23
- from buildbot .buildslave import BuildSlave
23
+ import os
24
+ USE_BUILDBOT_VERSION2 = os .getenv ('USE_BUILDBOT_VERSION2' ) is not None
25
+
26
+ if USE_BUILDBOT_VERSION2 :
27
+ from buildbot .worker import Worker
28
+ else :
29
+ from buildbot .buildslave import BuildSlave
24
30
from buildbot .scheduler import AnyBranchScheduler , Triggerable , Nightly
25
31
from buildbot .schedulers .forcesched import FixedParameter , ForceScheduler , StringParameter , BooleanParameter
26
32
from buildbot .schedulers .filter import ChangeFilter
@@ -58,7 +64,10 @@ def loadBuilderConfig(c, is_test_mode_enabled=False):
58
64
os .environ ['RESULTS_SERVER_API_KEY' ] = results_server_api_key
59
65
60
66
config = json .load (open ('config.json' ))
61
- c ['slaves' ] = [BuildSlave (worker ['name' ], passwords .get (worker ['name' ], 'password' ), max_builds = 1 ) for worker in config ['workers' ]]
67
+ if USE_BUILDBOT_VERSION2 :
68
+ c ['workers' ] = [Worker (worker ['name' ], passwords .get (worker ['name' ], 'password' ), max_builds = 1 ) for worker in config ['workers' ]]
69
+ else :
70
+ c ['slaves' ] = [BuildSlave (worker ['name' ], passwords .get (worker ['name' ], 'password' ), max_builds = 1 ) for worker in config ['workers' ]]
62
71
63
72
c ['schedulers' ] = []
64
73
for scheduler in config ['schedulers' ]:
@@ -99,7 +108,8 @@ def loadBuilderConfig(c, is_test_mode_enabled=False):
99
108
raise Exception ('Builder {} is for platform {} but has worker {} for platform {}!' .format (builder ['name' ], builder ['platform' ], worker ['name' ], worker ['platform' ]))
100
109
break
101
110
102
- builder ['slavenames' ] = builder .pop ('workernames' ) # Workaround for old buildbot to allow using workernames in config.json instead of slavenames
111
+ if not USE_BUILDBOT_VERSION2 :
112
+ builder ['slavenames' ] = builder .pop ('workernames' )
103
113
platform = builder ['platform' ]
104
114
105
115
factoryName = builder .pop ('factory' )
@@ -118,32 +128,37 @@ def loadBuilderConfig(c, is_test_mode_enabled=False):
118
128
if not buildbot_identifiers_re .match (builder_name ):
119
129
raise Exception ('Builder name "{}" is not a valid buildbot identifier.' .format (builder_name ))
120
130
for step in builder ["factory" ].steps :
121
- step_name = step [0 ].name
131
+ if USE_BUILDBOT_VERSION2 :
132
+ step_name = step .buildStep ().name
133
+ else :
134
+ step_name = step [0 ].name
122
135
if len (step_name ) > STEP_NAME_LENGTH_LIMIT :
123
136
raise Exception ('step name "{}" is longer than maximum allowed by Buildbot ({} characters).' .format (step_name , STEP_NAME_LENGTH_LIMIT ))
124
137
if not buildbot_identifiers_re .match (step_name ):
125
138
raise Exception ('step name "{}" is not a valid buildbot identifier.' .format (step_name ))
126
139
127
140
if platform .startswith ('mac' ):
128
- builder [ " category" ] = 'AppleMac'
141
+ category = 'AppleMac'
129
142
elif platform .startswith ('ios' ):
130
- builder [ ' category' ] = 'iOS'
143
+ category = 'iOS'
131
144
elif platform == 'win' :
132
- builder [ " category" ] = 'AppleWin'
145
+ category = 'AppleWin'
133
146
elif platform .startswith ('gtk' ):
134
- builder [ " category" ] = 'GTK'
147
+ category = 'GTK'
135
148
elif platform .startswith ('wpe' ):
136
- builder [ " category" ] = 'WPE'
149
+ category = 'WPE'
137
150
elif platform == 'wincairo' :
138
- builder [ " category" ] = 'WinCairo'
151
+ category = 'WinCairo'
139
152
elif platform .startswith ('playstation' ):
140
- builder [ " category" ] = 'PlayStation'
153
+ category = 'PlayStation'
141
154
else :
142
- builder [ " category" ] = 'misc'
155
+ category = 'misc'
143
156
144
- if (builder [ ' category' ] in ('AppleMac' , 'AppleWin' , 'iOS' )) and factoryName != 'BuildFactory' :
157
+ if (category in ('AppleMac' , 'AppleWin' , 'iOS' )) and factoryName != 'BuildFactory' :
145
158
builder ['nextBuild' ] = pickLatestBuild
146
159
160
+ if not USE_BUILDBOT_VERSION2 :
161
+ builder ['category' ] = category
147
162
c ['builders' ].append (builder )
148
163
149
164
0 commit comments