Skip to content

Commit 940551c

Browse files
encukouzware
andauthored
Move association of builders to workers to builders.py (GH-698)
Co-authored-by: Zachary Ware <zach@python.org>
1 parent 49b353c commit 940551c

File tree

2 files changed

+19
-21
lines changed

2 files changed

+19
-21
lines changed

master/custom/builders.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -356,11 +356,14 @@
356356
]
357357

358358

359-
def get_builders(settings):
359+
def get_builders(settings, workers):
360+
workers_by_name = {w.name: w for w in workers}
361+
360362
# Override with a default simple worker if we are using local workers
361363
if settings.use_local_worker:
364+
local_worker = workers_by_name["local-worker"]
362365
local_buildfactory = globals().get(settings.local_worker_buildfactory, UnixBuild)
363-
return [("Test Builder", "local-worker", local_buildfactory, STABLE, NO_TIER)]
366+
return [("Test Builder", local_worker, local_buildfactory, STABLE, NO_TIER)]
364367

365368
all_builders = []
366369
for builders, stability, tier in (
@@ -375,7 +378,8 @@ def get_builders(settings):
375378
(UNSTABLE_BUILDERS_NO_TIER, UNSTABLE, NO_TIER),
376379
):
377380
for name, worker_name, buildfactory in builders:
378-
all_builders.append((name, worker_name, buildfactory, stability, tier))
381+
worker = workers_by_name[worker_name]
382+
all_builders.append((name, worker, buildfactory, stability, tier))
379383
return all_builders
380384

381385

master/master.cfg

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,8 @@ except FileNotFoundError:
8989

9090

9191
WORKERS = get_workers(settings)
92-
WORKERS_BY_NAME = {w.name: w for w in WORKERS}
9392

94-
BUILDERS = get_builders(settings)
93+
BUILDERS = get_builders(settings, WORKERS)
9594

9695
AUTH, AUTHZ = set_up_authorization(settings)
9796

@@ -248,15 +247,14 @@ mail_status_builders = []
248247
for branch_num, (git_url, branchname, git_branch) in enumerate(git_branches):
249248
buildernames = []
250249
refleakbuildernames = []
251-
for name, worker_name, buildfactory, stability, tier in BUILDERS:
250+
for name, worker, buildfactory, stability, tier in BUILDERS:
252251
if any(
253252
pattern in name for pattern in ONLY_MAIN_BRANCH
254253
) and branchname != MAIN_BRANCH_NAME:
255254
# Workers known to be broken on older branches: let's focus on
256255
# supporting these platforms in the main branch.
257256
continue
258257

259-
worker = WORKERS_BY_NAME[worker_name]
260258
if worker.not_branches and branchname in worker.not_branches:
261259
continue
262260
if worker.branches and branchname not in worker.branches:
@@ -303,29 +301,28 @@ for branch_num, (git_url, branchname, git_branch) in enumerate(git_branches):
303301

304302
builder = util.BuilderConfig(
305303
name=buildername,
306-
workernames=[worker_name],
307-
builddir="%s.%s%s"
308-
% (branchname, worker_name, getattr(f, "buildersuffix", "")),
304+
workernames=[worker.name],
305+
builddir="%s.%s%s" % (branchname, worker.name, getattr(f, "buildersuffix", "")),
309306
factory=f,
310307
tags=tags,
311308
locks=[cpulock.access("counting")],
312309
)
313310

314311
# This worker runs pyperformance at 12am UTC. If a build is scheduled between
315312
# 10pm UTC and 2am UTC, it will be delayed to 2am UTC.
316-
if worker_name == "diegorusso-aarch64-bigmem":
313+
if worker.name == "diegorusso-aarch64-bigmem":
317314
builder.canStartBuild = no_builds_between("22:00", "2:00")
318315

319316
# This worker restarts every day at 9am UTC to work around issues stemming from
320317
# failing bigmem tests trashing disk space and fragmenting RAM. Builds scheduled
321318
# between 07:20am - 9:20am UTC will be delayed to 9:20am UTC.
322-
if worker_name == "ambv-bb-win11":
319+
if worker.name == "ambv-bb-win11":
323320
builder.canStartBuild = no_builds_between("7:20", "9:20")
324321

325322
# These workers are reprovisioned every Wednesday at 9am PT. Builds
326323
# scheduled between 8am - 10am PT on Wednesdays will be delayed to
327324
# 10am PT.
328-
if worker_name in ("itamaro-win64-srv-22-aws", "itamaro-centos-aws"):
325+
if worker.name in ("itamaro-win64-srv-22-aws", "itamaro-centos-aws"):
329326
builder.canStartBuild = no_builds_between(
330327
"8:00", "10:00", day_of_week=2, tz=ZoneInfo("America/Los_Angeles")
331328
)
@@ -363,13 +360,11 @@ for branch_num, (git_url, branchname, git_branch) in enumerate(git_branches):
363360
stable_pull_request_builders = []
364361
all_pull_request_builders = []
365362

366-
for name, worker_name, buildfactory, stability, tier in BUILDERS:
363+
for name, worker, buildfactory, stability, tier in BUILDERS:
367364
buildername = f"{name} PR"
368365

369366
source = GitHub(repourl=git_url, **GIT_KWDS)
370367

371-
worker = WORKERS_BY_NAME[worker_name]
372-
373368
f = buildfactory(
374369
source,
375370
# Use the same downstream branch names as the "custom"
@@ -395,23 +390,22 @@ for name, worker_name, buildfactory, stability, tier in BUILDERS:
395390

396391
builder = util.BuilderConfig(
397392
name=buildername,
398-
workernames=[worker_name],
399-
builddir="%s.%s%s"
400-
% ("pull_request", worker_name, getattr(f, "buildersuffix", "")),
393+
workernames=[worker.name],
394+
builddir="%s.%s%s" % ("pull_request", worker.name, getattr(f, "buildersuffix", "")),
401395
factory=f,
402396
tags=tags,
403397
locks=[cpulock.access("counting")],
404398
)
405399

406400
# This worker runs pyperformance at 12am. If a build is scheduled between
407401
# 10pm and 2am, it will be delayed at 2am.
408-
if worker_name == "diegorusso-aarch64-bigmem":
402+
if worker.name == "diegorusso-aarch64-bigmem":
409403
builder.canStartBuild = no_builds_between("22:00", "2:00")
410404

411405
# These workers are reprovisioned every Wednesday at 9am PT. Builds
412406
# scheduled between 8am - 10am PT on Wednesdays will be delayed to
413407
# 10am PT.
414-
if worker_name in ("itamaro-win64-srv-22-aws", "itamaro-centos-aws"):
408+
if worker.name in ("itamaro-win64-srv-22-aws", "itamaro-centos-aws"):
415409
builder.canStartBuild = no_builds_between(
416410
"8:00", "10:00", day_of_week=2, tz=ZoneInfo("America/Los_Angeles")
417411
)

0 commit comments

Comments
 (0)