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

Side by Side Diff: appengine/findit/waterfall/identify_try_job_culprit_pipeline.py

Issue 1652603003: [Findit] Modify result page to display tryjob result for test failure. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@1228-try-job-pipeline-for-test-failure
Patch Set: . Created 4 years, 10 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 unified diff | Download patch
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 from common.git_repository import GitRepository 5 from common.git_repository import GitRepository
6 from common.http_client_appengine import HttpClientAppengine as HttpClient 6 from common.http_client_appengine import HttpClientAppengine as HttpClient
7 from model import wf_analysis_status 7 from model import wf_analysis_status
8 from model.wf_try_job import WfTryJob 8 from model.wf_try_job import WfTryJob
9 from model.wf_try_job_data import WfTryJobData 9 from model.wf_try_job_data import WfTryJobData
10 from pipeline_wrapper import BasePipeline 10 from pipeline_wrapper import BasePipeline
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 if result and result.get('report'): 190 if result and result.get('report'):
191 try_job_data = WfTryJobData.Get(try_job_id) 191 try_job_data = WfTryJobData.Get(try_job_id)
192 if try_job_type == TryJobType.COMPILE: 192 if try_job_type == TryJobType.COMPILE:
193 # For compile failures, the try job will stop if one revision fails, so 193 # For compile failures, the try job will stop if one revision fails, so
194 # the culprit will be the last revision in the result. 194 # the culprit will be the last revision in the result.
195 failed_revision = self._GetFailedRevisionFromCompileResult( 195 failed_revision = self._GetFailedRevisionFromCompileResult(
196 result) 196 result)
197 failed_revisions = [failed_revision] if failed_revision else [] 197 failed_revisions = [failed_revision] if failed_revision else []
198 culprits = self._GetCulpritInfo(failed_revisions) 198 culprits = self._GetCulpritInfo(failed_revisions)
199 if culprits: 199 if culprits:
200 result['culprit'] = culprits[failed_revision] 200 result['culprit'] = {
201 'compile': culprits[failed_revision]
202 }
201 try_job_data.culprits = {'compile': failed_revision} 203 try_job_data.culprits = {'compile': failed_revision}
202 else: # try_job_type is 'test'. 204 else: # try_job_type is 'test'.
203 culprit_map, failed_revisions = self._FindCulpritForEachTestFailure( 205 culprit_map, failed_revisions = self._FindCulpritForEachTestFailure(
204 blame_list, result) 206 blame_list, result)
205 culprits = self._GetCulpritInfo(failed_revisions) 207 culprits = self._GetCulpritInfo(failed_revisions)
206 if culprits: 208 if culprits:
207 self._UpdateCulpritMapWithCulpritInfo(culprit_map, culprits) 209 self._UpdateCulpritMapWithCulpritInfo(culprit_map, culprits)
208 result['culprit'] = culprit_map 210 result['culprit'] = culprit_map
209 try_job_data.culprits = self._GetCulpritDataForTest(culprit_map) 211 try_job_data.culprits = self._GetCulpritDataForTest(culprit_map)
210 try_job_data.put() 212 try_job_data.put()
211 213
212 # Store try job results. 214 # Store try job results.
213 try_job_result = WfTryJob.Get(master_name, builder_name, build_number) 215 try_job_result = WfTryJob.Get(master_name, builder_name, build_number)
214 if culprits: 216 if culprits:
215 result_to_update = ( 217 result_to_update = (
216 try_job_result.compile_results if 218 try_job_result.compile_results if
217 try_job_type == TryJobType.COMPILE else 219 try_job_type == TryJobType.COMPILE else
218 try_job_result.test_results) 220 try_job_result.test_results)
219 if (result_to_update and 221 if (result_to_update and
220 result_to_update[-1]['try_job_id'] == try_job_id): 222 result_to_update[-1]['try_job_id'] == try_job_id):
221 result_to_update[-1].update(result) 223 result_to_update[-1].update(result)
222 else: # pragma: no cover 224 else: # pragma: no cover
223 result_to_update.append(result) 225 result_to_update.append(result)
224 226
225 try_job_result.status = wf_analysis_status.ANALYZED 227 try_job_result.status = wf_analysis_status.ANALYZED
226 try_job_result.put() 228 try_job_result.put()
227 229
228 return result.get('culprit') if result else None 230 return result.get('culprit') if result else None
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698