diff --git a/master/custom/release_dashboard.py b/master/custom/release_dashboard.py index 6b32bc67..645a569a 100644 --- a/master/custom/release_dashboard.py +++ b/master/custom/release_dashboard.py @@ -228,18 +228,17 @@ def problems(self): elif latest_build["results"] == buildbot.process.results.WARNINGS: yield BuildWarning(latest_build) elif latest_build["results"] == buildbot.process.results.FAILURE: - failing_streak = 0 first_failing_build = None for build in self.iter_interesting_builds(): if build["results"] == buildbot.process.results.FAILURE: first_failing_build = build - continue elif build["results"] == buildbot.process.results.SUCCESS: - if latest_build != first_failing_build: - yield BuildFailure(latest_build, first_failing_build) break else: - yield BuildFailure(latest_build) + # Didn't find a successful build; end of the failing streak + # is unknown. + first_failing_build = None + yield BuildFailure(latest_build, first_failing_build) if not self.connected_workers: yield BuilderDisconnected(self) @@ -304,7 +303,10 @@ def problems(self): problems = [] for builder in self._root.builders: if builder.branch == self: - problems.extend(builder.problems) + if builder.problems: + problems.extend(builder.problems) + else: + problems.append(NoProblem(builder)) return problems @cached_property @@ -619,8 +621,9 @@ def builder(self): @cached_property def affected_builds(self): result = {"Latest build": self.latest_build} - if self.first_failing_build: - result["Breaking build"] = self.first_failing_build + first_failing = self.first_failing_build + if first_failing and first_failing != self.latest_build: + result["Breaking build"] = first_failing return result @@ -682,8 +685,11 @@ def get_severity_and_description(self): return severity, description +@dataclass class NoProblem(Problem): """Dummy problem""" + builder: 'Builder | None' = None + name = "Releasable" description = "No problem detected" diff --git a/master/custom/templates/releasedashboard.html b/master/custom/templates/releasedashboard.html index 690ba564..e23dac43 100644 --- a/master/custom/templates/releasedashboard.html +++ b/master/custom/templates/releasedashboard.html @@ -206,7 +206,10 @@
{% endif %}
- {% for build in builder.builds[:70] %} + {% for build in builder.builds %} + {% if loop.index0 == (50 if builder.problems else 3) %} + ⋯ {% break %} + {% endif %} {{ build_dot(build) }} {% endfor %}