Skip to content

Commit 5aa8e17

Browse files
committed
Fix & simplify logic error in Builder.problems()
Always yield a BuildFailure. BuildFailure now allows the latest & breaking build to be the same, and deduplicates in that case.
1 parent 123e57d commit 5aa8e17

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

master/custom/release_dashboard.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -228,18 +228,17 @@ def problems(self):
228228
elif latest_build["results"] == buildbot.process.results.WARNINGS:
229229
yield BuildWarning(latest_build)
230230
elif latest_build["results"] == buildbot.process.results.FAILURE:
231-
failing_streak = 0
232231
first_failing_build = None
233232
for build in self.iter_interesting_builds():
234233
if build["results"] == buildbot.process.results.FAILURE:
235234
first_failing_build = build
236-
continue
237235
elif build["results"] == buildbot.process.results.SUCCESS:
238-
if latest_build != first_failing_build:
239-
yield BuildFailure(latest_build, first_failing_build)
240236
break
241237
else:
242-
yield BuildFailure(latest_build)
238+
# Didn't find a successful build; end of the failing streak
239+
# is unknown.
240+
first_failing_build = None
241+
yield BuildFailure(latest_build, first_failing_build)
243242

244243
if not self.connected_workers:
245244
yield BuilderDisconnected(self)
@@ -619,8 +618,9 @@ def builder(self):
619618
@cached_property
620619
def affected_builds(self):
621620
result = {"Latest build": self.latest_build}
622-
if self.first_failing_build:
623-
result["Breaking build"] = self.first_failing_build
621+
first_failing = self.first_failing_build
622+
if first_failing and first_failing != self.latest_build:
623+
result["Breaking build"] = first_failing
624624
return result
625625

626626

0 commit comments

Comments
 (0)