Skip to content

Commit 8b9ee92

Browse files
committed
Address feedback
1 parent 5c4e84b commit 8b9ee92

File tree

3 files changed

+39
-32
lines changed

3 files changed

+39
-32
lines changed

master/custom/builders.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,6 @@
126126
("aarch64 RHEL8 LTO", "cstratak-RHEL8-aarch64", LTONonDebugUnixBuild),
127127
("aarch64 RHEL8 LTO + PGO", "cstratak-RHEL8-aarch64", LTOPGONonDebugBuild),
128128

129-
("aarch64 Ubuntu 22.04 BigMem", "diegorusso-aarch64-bigmem", UnixBigmemBuild),
130-
131129
# macOS aarch64 clang
132130
("ARM64 macOS", "pablogsal-macos-m1", MacOSArmWithBrewBuild),
133131
("ARM64 MacOS M1 NoGIL", "itamaro-macos-arm64-aws", MacOSArmWithBrewNoGilBuild),
@@ -243,6 +241,8 @@
243241
("PPC64LE CentOS9 LTO + PGO", "cstratak-CentOS9-ppc64le", LTOPGONonDebugBuild),
244242

245243
# Linux aarch64 GCC/Clang
244+
("aarch64 Ubuntu 22.04 BigMem", "diegorusso-aarch64-bigmem", UnixBigmemBuild),
245+
246246
# Fedora Rawhide is unstable
247247
("aarch64 Fedora Rawhide", "cstratak-fedora-rawhide-aarch64", FedoraRawhideBuild),
248248
("aarch64 Fedora Rawhide Refleaks", "cstratak-fedora-rawhide-aarch64", UnixRefleakBuild),

master/custom/factories.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ class UnixBuildWithoutDocStrings(UnixBuild):
267267
class UnixBigmemBuild(UnixBuild):
268268
buildersuffix = ".bigmem"
269269
testFlags = ["-M60g", "-j4", "-uall,extralargefile"]
270-
factory_tags = ["aarch64", "bigmem"]
270+
factory_tags = ["bigmem"]
271271

272272

273273
class AIXBuild(UnixBuild):

master/master.cfg

+36-29
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import os
1414
import subprocess
1515
import sys
1616

17-
from datetime import timedelta, datetime
17+
from datetime import datetime, timedelta
1818
from functools import partial
1919

2020
from buildbot.plugins import reporters, schedulers, util
@@ -182,6 +182,24 @@ def is_important_change(change):
182182
return any(is_important_file(filename) for filename in change.files)
183183

184184

185+
# Avoid a build to be started between start and end time and delay such build
186+
# at end time
187+
def no_builds_between(start, end):
188+
def f(builder, requests):
189+
now = datetime.now()
190+
if start <= now.hour < end:
191+
# Calculate the delay until end time
192+
delay = ((end - now.hour) % 24) * 3600 - now.minute * 60 - now.second
193+
builder.master.reactor.callLater(
194+
delay,
195+
builder.buildset_manager.submitBuildSet,
196+
requests[0],
197+
)
198+
return None # Do not start the build immediately
199+
return requests[0] # Start the next build request
200+
return f
201+
202+
185203
github_status_builders = []
186204
release_status_builders = []
187205
mail_status_builders = []
@@ -247,17 +265,24 @@ for branch_num, (git_url, branchname, git_branch) in enumerate(git_branches):
247265
mail_status_builders.append(buildername)
248266
github_status_builders.append(buildername)
249267
release_status_builders.append(buildername)
250-
c["builders"].append(
251-
util.BuilderConfig(
252-
name=buildername,
253-
workernames=[worker_name],
254-
builddir="%s.%s%s"
255-
% (branchname, worker_name, getattr(f, "buildersuffix", "")),
256-
factory=f,
257-
tags=tags,
258-
locks=[cpulock.access("counting")],
259-
)
268+
269+
builder = util.BuilderConfig(
270+
name=buildername,
271+
workernames=[worker_name],
272+
builddir="%s.%s%s"
273+
% (branchname, worker_name, getattr(f, "buildersuffix", "")),
274+
factory=f,
275+
tags=tags,
276+
locks=[cpulock.access("counting")],
260277
)
278+
279+
# This worker runs pyperformance at 12am. If a build is scheduled between
280+
# 10pm and 2am, it will be delayed at 2am.
281+
if worker_name == "diegorusso-aarch64-bigmem":
282+
builder.nextBuild = no_builds_between(22, 2)
283+
284+
c["builders"].append(builder)
285+
261286
c["schedulers"].append(
262287
schedulers.SingleBranchScheduler(
263288
name=branchname,
@@ -288,24 +313,6 @@ for branch_num, (git_url, branchname, git_branch) in enumerate(git_branches):
288313
stable_pull_request_builders = []
289314
all_pull_request_builders = []
290315

291-
# Avoid a build to be started between start and end time and delay such build
292-
# at end time
293-
def no_builds_between(start, end):
294-
def f(builder, requests):
295-
now = datetime.now()
296-
if start <= now.hour < end:
297-
# Calculate the delay until end time
298-
delay = ((end - now.hour) % 24) * 3600 - now.minute * 60 - now.second
299-
builder.master.reactor.callLater(
300-
delay,
301-
builder.buildset_manager.submitBuildSet,
302-
requests[0]
303-
)
304-
return None # Do not start the build immediately
305-
return requests[0] # Start the next build request
306-
return f
307-
308-
309316
for name, worker_name, buildfactory, stability, tier in BUILDERS:
310317
if "Windows XP" in name or "VS9.0" in name:
311318
continue

0 commit comments

Comments
 (0)