Skip to content
This repository was archived by the owner on Jun 24, 2022. It is now read-only.

Commit 92d753a

Browse files
[build.webkit.org] Use feature flag to support Buildbot 2 code
https://bugs.webkit.org/show_bug.cgi?id=217834 Reviewed by Jonathan Bedard. * BuildSlaveSupport/build.webkit.org-config/loadConfig.py: (loadBuilderConfig): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@268674 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent b679ef2 commit 92d753a

File tree

2 files changed

+38
-13
lines changed

2 files changed

+38
-13
lines changed

Tools/BuildSlaveSupport/build.webkit.org-config/loadConfig.py

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,13 @@
2020
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2121
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2222

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
2430
from buildbot.scheduler import AnyBranchScheduler, Triggerable, Nightly
2531
from buildbot.schedulers.forcesched import FixedParameter, ForceScheduler, StringParameter, BooleanParameter
2632
from buildbot.schedulers.filter import ChangeFilter
@@ -58,7 +64,10 @@ def loadBuilderConfig(c, is_test_mode_enabled=False):
5864
os.environ['RESULTS_SERVER_API_KEY'] = results_server_api_key
5965

6066
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']]
6271

6372
c['schedulers'] = []
6473
for scheduler in config['schedulers']:
@@ -99,7 +108,8 @@ def loadBuilderConfig(c, is_test_mode_enabled=False):
99108
raise Exception('Builder {} is for platform {} but has worker {} for platform {}!'.format(builder['name'], builder['platform'], worker['name'], worker['platform']))
100109
break
101110

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')
103113
platform = builder['platform']
104114

105115
factoryName = builder.pop('factory')
@@ -118,32 +128,37 @@ def loadBuilderConfig(c, is_test_mode_enabled=False):
118128
if not buildbot_identifiers_re.match(builder_name):
119129
raise Exception('Builder name "{}" is not a valid buildbot identifier.'.format(builder_name))
120130
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
122135
if len(step_name) > STEP_NAME_LENGTH_LIMIT:
123136
raise Exception('step name "{}" is longer than maximum allowed by Buildbot ({} characters).'.format(step_name, STEP_NAME_LENGTH_LIMIT))
124137
if not buildbot_identifiers_re.match(step_name):
125138
raise Exception('step name "{}" is not a valid buildbot identifier.'.format(step_name))
126139

127140
if platform.startswith('mac'):
128-
builder["category"] = 'AppleMac'
141+
category = 'AppleMac'
129142
elif platform.startswith('ios'):
130-
builder['category'] = 'iOS'
143+
category = 'iOS'
131144
elif platform == 'win':
132-
builder["category"] = 'AppleWin'
145+
category = 'AppleWin'
133146
elif platform.startswith('gtk'):
134-
builder["category"] = 'GTK'
147+
category = 'GTK'
135148
elif platform.startswith('wpe'):
136-
builder["category"] = 'WPE'
149+
category = 'WPE'
137150
elif platform == 'wincairo':
138-
builder["category"] = 'WinCairo'
151+
category = 'WinCairo'
139152
elif platform.startswith('playstation'):
140-
builder["category"] = 'PlayStation'
153+
category = 'PlayStation'
141154
else:
142-
builder["category"] = 'misc'
155+
category = 'misc'
143156

144-
if (builder['category'] in ('AppleMac', 'AppleWin', 'iOS')) and factoryName != 'BuildFactory':
157+
if (category in ('AppleMac', 'AppleWin', 'iOS')) and factoryName != 'BuildFactory':
145158
builder['nextBuild'] = pickLatestBuild
146159

160+
if not USE_BUILDBOT_VERSION2:
161+
builder['category'] = category
147162
c['builders'].append(builder)
148163

149164

Tools/ChangeLog

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
2020-10-19 Aakash Jain <[email protected]>
2+
3+
[build.webkit.org] Use feature flag to support Buildbot 2 code
4+
https://bugs.webkit.org/show_bug.cgi?id=217834
5+
6+
Reviewed by Jonathan Bedard.
7+
8+
* BuildSlaveSupport/build.webkit.org-config/loadConfig.py:
9+
(loadBuilderConfig):
10+
111
2020-10-19 Jonathan Bedard <[email protected]>
212

313
[webkitpy] Use webkitcorepy's autoinstaller for keyring

0 commit comments

Comments
 (0)