Skip to content

Commit dbcfa82

Browse files
authored
Add Wednesday maintenance window for itamaro workers (GH-668)
The `itamaro-win64-srv-22-aws` and `itamaro-centos-aws` workers are reprovisioned every Wednesday at 9am PT. Delay builds scheduled between 8am-10am PT on Wednesdays to avoid interruptions. The `no_builds_between` helper gains optional `day_of_week` and `tz` parameters to support this.
1 parent 36989dd commit dbcfa82

1 file changed

Lines changed: 22 additions & 2 deletions

File tree

master/master.cfg

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import sys
1616

1717
from datetime import datetime, timedelta
1818
from functools import partial
19+
from zoneinfo import ZoneInfo
1920

2021
from buildbot.plugins import reporters, schedulers, util
2122
from buildbot import locks
@@ -227,11 +228,14 @@ def get_delay(now, end):
227228

228229
# Avoid a build to be started between start and end time and delay such build
229230
# at end time
230-
def no_builds_between(start, end):
231+
def no_builds_between(start, end, *, day_of_week=None, tz=None):
231232
start = datetime.strptime(start, "%H:%M").time()
232233
end = datetime.strptime(end, "%H:%M").time()
233234
def canStartBuild(builder, wfb, request):
234-
now = datetime.now().time()
235+
now_dt = datetime.now(tz=tz)
236+
if day_of_week is not None and now_dt.weekday() != day_of_week:
237+
return True
238+
now = now_dt.time()
235239
if is_within_time_range(now, start, end):
236240
delay = get_delay(now, end)
237241
# Adapted from: https://docs.buildbot.net/current/manual/customization.html#canstartbuild-functions
@@ -331,6 +335,14 @@ for branch_num, (git_url, branchname, git_branch) in enumerate(git_branches):
331335
if worker_name == "ambv-bb-win11":
332336
builder.canStartBuild = no_builds_between("7:20", "9:20")
333337

338+
# These workers are reprovisioned every Wednesday at 9am PT. Builds
339+
# scheduled between 8am - 10am PT on Wednesdays will be delayed to
340+
# 10am PT.
341+
if worker_name in ("itamaro-win64-srv-22-aws", "itamaro-centos-aws"):
342+
builder.canStartBuild = no_builds_between(
343+
"8:00", "10:00", day_of_week=2, tz=ZoneInfo("America/Los_Angeles")
344+
)
345+
334346
c["builders"].append(builder)
335347

336348
c["schedulers"].append(
@@ -407,6 +419,14 @@ for name, worker_name, buildfactory, stability, tier in BUILDERS:
407419
if worker_name == "diegorusso-aarch64-bigmem":
408420
builder.canStartBuild = no_builds_between("22:00", "2:00")
409421

422+
# These workers are reprovisioned every Wednesday at 9am PT. Builds
423+
# scheduled between 8am - 10am PT on Wednesdays will be delayed to
424+
# 10am PT.
425+
if worker_name in ("itamaro-win64-srv-22-aws", "itamaro-centos-aws"):
426+
builder.canStartBuild = no_builds_between(
427+
"8:00", "10:00", day_of_week=2, tz=ZoneInfo("America/Los_Angeles")
428+
)
429+
410430
c["builders"].append(builder)
411431

412432
c["schedulers"].append(

0 commit comments

Comments
 (0)