OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 import contextlib | 5 import contextlib |
6 import copy | 6 import copy |
7 import json | 7 import json |
8 | 8 |
9 from infra.libs.infra_types import freeze, thaw | 9 from infra.libs.infra_types import freeze, thaw |
10 from slave import recipe_api | 10 from slave import recipe_api |
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
679 bot_update_json['properties']['got_revision']) | 679 bot_update_json['properties']['got_revision']) |
680 self.m.bot_update.ensure_checkout( | 680 self.m.bot_update.ensure_checkout( |
681 force=True, patch=False, update_presentation=False) | 681 force=True, patch=False, update_presentation=False) |
682 try: | 682 try: |
683 self.m.chromium.runhooks(name='runhooks (without patch)') | 683 self.m.chromium.runhooks(name='runhooks (without patch)') |
684 except self.m.step.StepFailure: | 684 except self.m.step.StepFailure: |
685 self.m.tryserver.set_transient_failure_tryjob_result() | 685 self.m.tryserver.set_transient_failure_tryjob_result() |
686 raise | 686 raise |
687 | 687 |
688 def run_tests_and_deapply_as_needed(self, mastername, api, tests, | 688 def run_tests_and_deapply_as_needed(self, mastername, api, tests, |
689 bot_update_step): | 689 bot_update_step, amp_tests=[]): |
690 def deapply_patch_fn(failing_tests): | 690 def deapply_patch_fn(failing_tests): |
691 self.deapply_patch(bot_update_step) | 691 self.deapply_patch(bot_update_step) |
692 compile_targets = list(self.m.itertools.chain( | 692 compile_targets = list(self.m.itertools.chain( |
693 *[t.compile_targets(api) for t in failing_tests])) | 693 *[t.compile_targets(api) for t in failing_tests])) |
694 if compile_targets: | 694 if compile_targets: |
695 # Remove duplicate targets. | 695 # Remove duplicate targets. |
696 compile_targets = sorted(set(compile_targets)) | 696 compile_targets = sorted(set(compile_targets)) |
697 has_failing_swarming_tests = [ | 697 has_failing_swarming_tests = [ |
698 t for t in failing_tests if t.uses_swarming] | 698 t for t in failing_tests if t.uses_swarming] |
699 if has_failing_swarming_tests: | 699 if has_failing_swarming_tests: |
700 self.m.isolate.clean_isolated_files(self.m.chromium.output_dir) | 700 self.m.isolate.clean_isolated_files(self.m.chromium.output_dir) |
701 try: | 701 try: |
702 self.m.chromium.compile( | 702 self.m.chromium.compile( |
703 compile_targets, name='compile (without patch)') | 703 compile_targets, name='compile (without patch)') |
704 except self.m.step.StepFailure: | 704 except self.m.step.StepFailure: |
705 self.m.tryserver.set_transient_failure_tryjob_result() | 705 self.m.tryserver.set_transient_failure_tryjob_result() |
706 raise | 706 raise |
707 if has_failing_swarming_tests: | 707 if has_failing_swarming_tests: |
708 self.m.isolate.isolate_tests(self.m.chromium.output_dir, | 708 self.m.isolate.isolate_tests(self.m.chromium.output_dir, |
709 verbose=True) | 709 verbose=True) |
710 | 710 |
711 with self.wrap_chromium_tests(mastername): | 711 with self.wrap_chromium_tests(mastername): |
712 return self.m.test_utils.determine_new_failures(api, tests, | 712 return self.m.test_utils.determine_new_failures(api, tests, |
713 deapply_patch_fn) | 713 deapply_patch_fn, |
| 714 amp_tests) |
714 | 715 |
715 def analyze(self, affected_files, exes, compile_targets, config_file_name, | 716 def analyze(self, affected_files, exes, compile_targets, config_file_name, |
716 additional_names=None, use_mb=False, build_output_dir=None): | 717 additional_names=None, use_mb=False, build_output_dir=None): |
717 """Runs "analyze" step to determine targets affected by the patch. | 718 """Runs "analyze" step to determine targets affected by the patch. |
718 | 719 |
719 Returns a tuple of: | 720 Returns a tuple of: |
720 - boolean, indicating whether patch requires compile | 721 - boolean, indicating whether patch requires compile |
721 - list of matching exes (see filter recipe module) | 722 - list of matching exes (see filter recipe module) |
722 - list of targets that need to be compiled (see filter recipe module)""" | 723 - list of targets that need to be compiled (see filter recipe module)""" |
723 | 724 |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
833 master_config.get('build_gs_bucket'), | 834 master_config.get('build_gs_bucket'), |
834 extra_url_components=None) | 835 extra_url_components=None) |
835 elif (mastername == 'tryserver.chromium.perf' or | 836 elif (mastername == 'tryserver.chromium.perf' or |
836 (mastername == 'tryserver.chromium.linux' and | 837 (mastername == 'tryserver.chromium.linux' and |
837 buildername == 'linux_full_bisect_builder')): | 838 buildername == 'linux_full_bisect_builder')): |
838 return None | 839 return None |
839 else: | 840 else: |
840 return self.m.archive.legacy_upload_url( | 841 return self.m.archive.legacy_upload_url( |
841 master_config.get('build_gs_bucket'), | 842 master_config.get('build_gs_bucket'), |
842 extra_url_components=self.m.properties['mastername']) | 843 extra_url_components=self.m.properties['mastername']) |
OLD | NEW |