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

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

Issue 1591003002: [Findit] Modify tryjob pipelines to trigger try jobs for test failure. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Simplify the format for final try-job result for test failures. 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 pipeline_wrapper import BasePipeline 5 from pipeline_wrapper import BasePipeline
6 from model import wf_analysis_status 6 from model import wf_analysis_status
7 from model.wf_try_job import WfTryJob 7 from model.wf_try_job import WfTryJob
8 from waterfall.identify_try_job_culprit_pipeline import ( 8 from waterfall.identify_try_job_culprit_pipeline import (
9 IdentifyTryJobCulpritPipeline) 9 IdentifyTryJobCulpritPipeline)
10 from waterfall.monitor_try_job_pipeline import MonitorTryJobPipeline 10 from waterfall.monitor_try_job_pipeline import MonitorTryJobPipeline
11 from waterfall.schedule_try_job_pipeline import ScheduleTryJobPipeline 11 from waterfall.schedule_try_job_pipeline import ScheduleTryJobPipeline
12 12
13 13
14 class TryJobPipeline(BasePipeline): 14 class TryJobPipeline(BasePipeline):
15 """Root pipeline to start a try job on current build.""" 15 """Root pipeline to start a try job on current build."""
16 16
17 def __init__(self, master_name, builder_name, build_number, 17 def __init__(
18 good_revision, bad_revision, compile_targets): 18 self, master_name, builder_name, build_number,
19 good_revision, bad_revision, blame_list, try_job_type,
20 compile_targets=None, targeted_tests=None):
19 super(TryJobPipeline, self).__init__( 21 super(TryJobPipeline, self).__init__(
20 master_name, builder_name, build_number, good_revision, bad_revision, 22 master_name, builder_name, build_number, good_revision, bad_revision,
21 compile_targets) 23 blame_list, try_job_type, compile_targets, targeted_tests)
22 self.master_name = master_name 24 self.master_name = master_name
23 self.builder_name = builder_name 25 self.builder_name = builder_name
24 self.build_number = build_number 26 self.build_number = build_number
25 self.good_revision = good_revision 27
26 self.bad_revision = bad_revision
27 self.compile_targets = compile_targets
28 28
29 def _LogUnexpectedAbort(self, was_aborted): 29 def _LogUnexpectedAbort(self, was_aborted):
30 """Marks the WfTryJob status as error, indicating that it was aborted. 30 """Marks the WfTryJob status as error, indicating that it was aborted.
31 31
32 Args: 32 Args:
33 was_aborted (bool): True if the pipeline was aborted due to some error 33 was_aborted (bool): True if the pipeline was aborted due to some error
34 or exception, otherwise False. 34 or exception, otherwise False.
35 """ 35 """
36 if was_aborted: 36 if was_aborted:
37 try_job_result = WfTryJob.Get( 37 try_job_result = WfTryJob.Get(
38 self.master_name, self.builder_name, self.build_number) 38 self.master_name, self.builder_name, self.build_number)
39 if try_job_result: # In case the result is deleted manually. 39 if try_job_result: # In case the result is deleted manually.
40 try_job_result.status = wf_analysis_status.ERROR 40 try_job_result.status = wf_analysis_status.ERROR
41 try_job_result.put() 41 try_job_result.put()
42 42
43 def finalized(self): 43 def finalized(self):
44 """Finalizes this Pipeline after execution.""" 44 """Finalizes this Pipeline after execution."""
45 self._LogUnexpectedAbort(self.was_aborted) 45 self._LogUnexpectedAbort(self.was_aborted)
46 46
47 # Arguments number differs from overridden method - pylint: disable=W0221 47 # Arguments number differs from overridden method - pylint: disable=W0221
48 def run( 48 def run(
49 self, master_name, builder_name, build_number, 49 self, master_name, builder_name, build_number, good_revision,
50 good_revision, bad_revision, compile_targets): 50 bad_revision, blame_list, try_job_type, compile_targets, targeted_tests):
51 try_job_id = yield ScheduleTryJobPipeline( 51 try_job_id = yield ScheduleTryJobPipeline(
52 master_name, builder_name, build_number, good_revision, bad_revision, 52 master_name, builder_name, build_number, good_revision, bad_revision,
53 compile_targets) 53 try_job_type, compile_targets, targeted_tests)
54 compile_result = yield MonitorTryJobPipeline( 54 try_job_result = yield MonitorTryJobPipeline(
55 master_name, builder_name, build_number, try_job_id) 55 master_name, builder_name, build_number, try_job_type, try_job_id)
56 yield IdentifyTryJobCulpritPipeline( 56 yield IdentifyTryJobCulpritPipeline(
57 master_name, builder_name, build_number, try_job_id, compile_result) 57 master_name, builder_name, build_number, blame_list, try_job_type,
58 try_job_id, try_job_result)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698