Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 datetime import datetime | 5 from datetime import datetime |
| 6 | 6 |
| 7 from common import appengine_util | 7 from common import appengine_util |
| 8 from common.pipeline_wrapper import BasePipeline | 8 from common.pipeline_wrapper import BasePipeline |
| 9 from model import analysis_status | 9 from model import analysis_status |
| 10 from model.wf_analysis import WfAnalysis | 10 from model.wf_analysis import WfAnalysis |
| 11 from waterfall.detect_first_failure_pipeline import DetectFirstFailurePipeline | 11 from waterfall.detect_first_failure_pipeline import DetectFirstFailurePipeline |
| 12 from waterfall.extract_deps_info_pipeline import ExtractDEPSInfoPipeline | 12 from waterfall.extract_deps_info_pipeline import ExtractDEPSInfoPipeline |
| 13 from waterfall.extract_signal_pipeline import ExtractSignalPipeline | 13 from waterfall.extract_signal_pipeline import ExtractSignalPipeline |
| 14 from waterfall.identify_culprit_pipeline import IdentifyCulpritPipeline | 14 from waterfall.identify_culprit_pipeline import IdentifyCulpritPipeline |
| 15 from waterfall.pull_changelog_pipeline import PullChangelogPipeline | 15 from waterfall.pull_changelog_pipeline import PullChangelogPipeline |
| 16 from waterfall.start_try_job_on_demand_pipeline import ( | 16 from waterfall.start_try_job_on_demand_pipeline import ( |
| 17 StartTryJobOnDemandPipeline) | 17 StartTryJobOnDemandPipeline) |
| 18 from waterfall.trigger_swarming_tasks_pipeline import ( | |
| 19 TriggerSwarmingTasksPipeline) | |
| 18 | 20 |
| 19 | 21 |
| 20 class AnalyzeBuildFailurePipeline(BasePipeline): | 22 class AnalyzeBuildFailurePipeline(BasePipeline): |
| 21 | 23 |
| 22 def __init__(self, master_name, builder_name, build_number, build_completed, | 24 def __init__(self, master_name, builder_name, build_number, build_completed, |
| 23 force_rerun_try_job): | 25 force_rerun_try_job): |
| 24 super(AnalyzeBuildFailurePipeline, self).__init__( | 26 super(AnalyzeBuildFailurePipeline, self).__init__( |
| 25 master_name, builder_name, build_number, build_completed, | 27 master_name, builder_name, build_number, build_completed, |
| 26 force_rerun_try_job) | 28 force_rerun_try_job) |
| 27 self.master_name = master_name | 29 self.master_name = master_name |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 60 # Arguments number differs from overridden method - pylint: disable=W0221 | 62 # Arguments number differs from overridden method - pylint: disable=W0221 |
| 61 def run(self, master_name, builder_name, build_number, build_completed, | 63 def run(self, master_name, builder_name, build_number, build_completed, |
| 62 force_rerun_try_job): | 64 force_rerun_try_job): |
| 63 self._ResetAnalysis(master_name, builder_name, build_number) | 65 self._ResetAnalysis(master_name, builder_name, build_number) |
| 64 | 66 |
| 65 # The yield statements below return PipelineFutures, which allow subsequent | 67 # The yield statements below return PipelineFutures, which allow subsequent |
| 66 # pipelines to refer to previous output values. | 68 # pipelines to refer to previous output values. |
| 67 # https://github.com/GoogleCloudPlatform/appengine-pipelines/wiki/Python | 69 # https://github.com/GoogleCloudPlatform/appengine-pipelines/wiki/Python |
| 68 failure_info = yield DetectFirstFailurePipeline( | 70 failure_info = yield DetectFirstFailurePipeline( |
| 69 master_name, builder_name, build_number) | 71 master_name, builder_name, build_number) |
| 72 # Trigger swarming tasks when test failure happens. | |
| 73 yield TriggerSwarmingTasksPipeline( | |
| 74 master_name, builder_name, build_number, failure_info) | |
| 70 change_logs = yield PullChangelogPipeline(failure_info) | 75 change_logs = yield PullChangelogPipeline(failure_info) |
| 71 deps_info = yield ExtractDEPSInfoPipeline(failure_info, change_logs) | 76 deps_info = yield ExtractDEPSInfoPipeline(failure_info, change_logs) |
| 72 signals = yield ExtractSignalPipeline(failure_info) | 77 signals = yield ExtractSignalPipeline(failure_info) |
| 73 heuristic_result = yield IdentifyCulpritPipeline( | 78 heuristic_result = yield IdentifyCulpritPipeline( |
| 74 failure_info, change_logs, deps_info, signals, build_completed) | 79 failure_info, change_logs, deps_info, signals, build_completed) |
| 75 yield StartTryJobOnDemandPipeline( | 80 yield StartTryJobOnDemandPipeline( |
|
stgao
2016/07/12 17:47:49
As discussed, TriggerSwarmingTasksPipeline and Sta
chanli
2016/07/12 20:04:52
Done.
| |
| 76 failure_info, signals, build_completed, force_rerun_try_job, | 81 failure_info, signals, build_completed, force_rerun_try_job, |
| 77 heuristic_result) | 82 heuristic_result) |
| OLD | NEW |