Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(688)

Unified Diff: scripts/slave/recipe_modules/perf_try/build_state.py

Issue 2283203002: Make it obvious when perf tryjob builds fail. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Rebasing, adding url field to mock response, retraining. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | scripts/slave/recipes/bisection/android_bisect.expected/basic_perf_tryjob_android_fyi_perf_bisect.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: scripts/slave/recipe_modules/perf_try/build_state.py
diff --git a/scripts/slave/recipe_modules/perf_try/build_state.py b/scripts/slave/recipe_modules/perf_try/build_state.py
index 73673f5f024b345de5181ca9bd95621bf4b8c9d6..c100a3176201b61bd6d6a3fcfa8730184423c3f9 100644
--- a/scripts/slave/recipe_modules/perf_try/build_state.py
+++ b/scripts/slave/recipe_modules/perf_try/build_state.py
@@ -55,13 +55,14 @@ class BuildState(object):
))
return result.stdout['build']['status'] == 'COMPLETED'
- def _is_build_archived(self): # pragma: no cover
+ def _is_build_successful(self): # pragma: no cover
result = self.api.m.buildbucket.get_build(
self.build_id,
step_test_data=lambda: self.api.m.json.test_api.output_stream(
- {'build': {'result': 'SUCCESS'}}
+ {'build': {'result': 'SUCCESS', 'url': 'buildbot.dummy.url/job/12'}}
))
- return result.stdout['build']['result'] == 'SUCCESS'
+ return (result.stdout['build']['result'] == 'SUCCESS',
+ result.stdout['build']['url'])
# Duplicate code from auto_bisect.bisector.get_builder_bot_for_this_platform
def get_builder_bot_for_this_platform(self): # pragma: no cover
@@ -121,8 +122,15 @@ class BuildState(object):
def wait_for(self): # pragma: no cover
while True:
if self._is_completed():
- if self._is_build_archived():
+ succeeded, build_url = self._is_build_successful()
+ if succeeded:
break
+ self.api.m.step.active_result.presentation.status = (
+ self.api.m.step.WARNING)
+ self.api.m.step.active_result.presentation.links['FAILED BUILD'] = (
+ build_url)
+ self.api.m.halt('Build %s patch failed' % (
+ 'with' if self.with_patch else 'without'))
raise self.api.m.step.StepFailure('Build %s fails' % self.build_id)
else:
self.api.m.python.inline(
« no previous file with comments | « no previous file | scripts/slave/recipes/bisection/android_bisect.expected/basic_perf_tryjob_android_fyi_perf_bisect.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698