8000 GH-419: Pass unstable builders also into GitHubPrScheduler (#434) · python/buildmaster-config@e14b0cd · GitHub
[go: up one dir, main page]

Skip to content

Commit e14b0cd

Browse files
authored
GH-419: Pass unstable builders also into GitHubPrScheduler (#434)
* GH-419: Pass unstable builders also into GitHubPrScheduler This is needed to support triggering unstable builders using `!buildbot` PR comment Add the stability to the builder name so we can limit label-based triggering only to stable builders * Try a different approach - make GitHubPrScheduler aware of which builders are stable * Drop `NO_NOTIFICATION` check
1 parent cef3fcf commit e14b0cd

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

master/custom/schedulers.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55

66

77
class GitHubPrScheduler(AnyBranchScheduler):
8+
def __init__(self, *args, stable_builder_names, **kwargs):
9+
super().__init__(*args, **kwargs)
10+
self.stable_builder_names = stable_builder_names
11+
812
@defer.inlineCallbacks
913
def addBuildsetForChanges(self, **kwargs):
1014
log.msg("Preapring buildset for PR changes")
@@ -18,8 +22,16 @@ def addBuildsetForChanges(self, **kwargs):
1822
chdict = yield self.master.db.changes.getChange(changeid)
1923

2024
builder_filter = chdict["properties"].get("builderfilter", None)
25+
event = chdict["properties"].get("event", None)
2126
builder_names = kwargs.get("builderNames", self.builderNames)
2227
if builder_filter and builder_names:
28+
# allow unstable builders only for comment-based trigger
29+
if event != "issue_comment":
30+
builder_names = [
31+
builder_name
32+
for builder_name in builder_names
33+
if builder_name in self.stable_builder_names
34+
]
2335
log.msg("Found builder filter: {}".format(builder_filter))
2436
builder_filter, _ = builder_filter
2537
matcher = re.compile(builder_filter, re.IGNORECASE)

master/master.cfg

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -309,16 +309,12 @@ for name, worker_name, buildfactory, stability, tier in BUILDERS:
309309
if "Windows7" in name:
310310
continue
311311

312-
buildername = name + " " + "PR"
312+
buildername = f"{name} PR"
313313

314-
if stability != STABLE:
315-
unstable_pull_request_builders.append(buildername)
316-
else:
314+
if stability == STABLE:
317315
stable_pull_request_builders.append(buildername)
318-
319-
320-
if any(pattern in buildername for pattern in NO_NOTIFICATION):
321-
continue
316+
else:
317+
unstable_pull_request_builders.append(buildername)
322318

323319
source = GitHub(repourl=git_url, **GIT_KWDS)
324320

@@ -352,7 +348,8 @@ c["schedulers"].append(
352348
name="pull-request-scheduler",
353349
change_filter=util.ChangeFilter(filter_fn=should_pr_be_tested),
354350
treeStableTimer=30, # seconds
355-
builderNames=stable_pull_request_builders,
351+
builderNames=stable_pull_request_builders + unstable_pull_request_builders,
352+
stable_builder_names=set(stable_pull_request_builders),
356353
)
357354
)
358355

0 commit comments

Comments
 (0)
0