Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions master/master.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import sys

from datetime import datetime, timedelta
from functools import partial
from zoneinfo import ZoneInfo

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

# Avoid a build to be started between start and end time and delay such build
# at end time
def no_builds_between(start, end):
def no_builds_between(start, end, *, day_of_week=None, tz=None):
start = datetime.strptime(start, "%H:%M").time()
end = datetime.strptime(end, "%H:%M").time()
def canStartBuild(builder, wfb, request):
now = datetime.now().time()
now_dt = datetime.now(tz=tz)
if day_of_week is not None and now_dt.weekday() != day_of_week:
return True
now = now_dt.time()
if is_within_time_range(now, start, end):
delay = get_delay(now, end)
# Adapted from: https://docs.buildbot.net/current/manual/customization.html#canstartbuild-functions
Expand Down Expand Up @@ -331,6 +335,14 @@ for branch_num, (git_url, branchname, git_branch) in enumerate(git_branches):
if worker_name == "ambv-bb-win11":
builder.canStartBuild = no_builds_between("7:20", "9:20")

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

c["builders"].append(builder)

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

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

c["builders"].append(builder)

c["schedulers"].append(
Expand Down