|
Lines 755-761
class BugzillaMixin(object):
a/Tools/CISupport/ews-build/steps.py_sec1
|
| 755 |
build_url = '{}#/builders/{}/builds/{}'.format(self.master.config.buildbotURL, self.build._builderid, self.build.number) |
755 |
build_url = '{}#/builders/{}/builds/{}'.format(self.master.config.buildbotURL, self.build._builderid, self.build.number) |
| 756 |
email_subject = 'Infrastructure issue at {}'.format(builder_name) |
756 |
email_subject = 'Infrastructure issue at {}'.format(builder_name) |
| 757 |
email_text = 'The following infrastructure issue happened at:\n\n' |
757 |
email_text = 'The following infrastructure issue happened at:\n\n' |
| 758 |
email_text += ' - Build : {}\n'.format(build_url) |
758 |
email_text += ' - Build : <a href="{}">{}</a>\n'.format(build_url, build_url) |
| 759 |
email_text += ' - Builder : {}\n'.format(builder_name) |
759 |
email_text += ' - Builder : {}\n'.format(builder_name) |
| 760 |
email_text += ' - Worker : {}\n'.format(worker_name) |
760 |
email_text += ' - Worker : {}\n'.format(worker_name) |
| 761 |
email_text += ' - Issue: {}\n'.format(infrastructure_issue_text) |
761 |
email_text += ' - Issue: {}\n'.format(infrastructure_issue_text) |
|
Lines 2764-2775
class RunWebKitTestsRedTree(RunWebKitTests):
a/Tools/CISupport/ews-build/steps.py_sec2
|
| 2764 |
self.build.results = SUCCESS |
2764 |
self.build.results = SUCCESS |
| 2765 |
self.setProperty('build_summary', message) |
2765 |
self.setProperty('build_summary', message) |
| 2766 |
else: |
2766 |
else: |
| 2767 |
# We have a failure return code, but not a list of failed or flaky tests. |
2767 |
# We have a failure return code but not a list of failed or flaky tests, so we can't run the repeat steps. |
| 2768 |
# So retry re-running the _whole_ layout tests without-patch to see if |
2768 |
# If we are on the last retry then run the whole layout tests without patch. |
| 2769 |
# this unexpected failure was pre-existent. If the failure was not pre-existent, |
2769 |
# If not, then go to analyze-layout-tests-results where we will retry everything hoping this was a random failure. |
| 2770 |
# then we would not report a list of failed test, just a generic "unknown" failure. |
|
|
| 2771 |
self.setProperty('patchFailedTests', True) |
2770 |
self.setProperty('patchFailedTests', True) |
| 2772 |
next_steps.extend([UnApplyPatchIfRequired(), CompileWebKitWithoutPatch(retry_build_on_failure=True), ValidatePatch(verifyBugClosed=False, addURLs=False), RunWebKitTestsWithoutPatchRedTree()]) |
2771 |
retry_count = int(self.getProperty('retry_count', 0)) |
|
|
2772 |
if retry_count < AnalyzeLayoutTestsResultsRedTree.MAX_RETRY: |
| 2773 |
next_steps.append(AnalyzeLayoutTestsResultsRedTree()) |
| 2774 |
else: |
| 2775 |
next_steps.extend([UnApplyPatchIfRequired(), CompileWebKitWithoutPatch(retry_build_on_failure=True), ValidatePatch(verifyBugClosed=False, addURLs=False), RunWebKitTestsWithoutPatchRedTree()]) |
| 2773 |
if next_steps: |
2776 |
if next_steps: |
| 2774 |
self.build.addStepsAfterCurrentStep(next_steps) |
2777 |
self.build.addStepsAfterCurrentStep(next_steps) |
| 2775 |
return rc |
2778 |
return rc |
|
Lines 2787-2793
class RunWebKitTestsRepeatFailuresRedTree(RunWebKitTestsRedTree):
a/Tools/CISupport/ews-build/steps.py_sec3
|
| 2787 |
def setLayoutTestCommand(self): |
2790 |
def setLayoutTestCommand(self): |
| 2788 |
super().setLayoutTestCommand() |
2791 |
super().setLayoutTestCommand() |
| 2789 |
first_results_failing_tests = set(self.getProperty('first_run_failures', [])) |
2792 |
first_results_failing_tests = set(self.getProperty('first_run_failures', [])) |
| 2790 |
self.setCommand(self.command + ['--repeat-each=%s' % self.NUM_REPEATS_PER_TEST] + sorted(first_results_failing_tests)) |
2793 |
self.setCommand(self.command + ['--fully-parallel', '--repeat-each=%s' % self.NUM_REPEATS_PER_TEST] + sorted(first_results_failing_tests)) |
| 2791 |
|
2794 |
|
| 2792 |
def evaluateCommand(self, cmd): |
2795 |
def evaluateCommand(self, cmd): |
| 2793 |
with_patch_repeat_failures_results_nonflaky_failures = set(self.getProperty('with_patch_repeat_failures_results_nonflaky_failures', [])) |
2796 |
with_patch_repeat_failures_results_nonflaky_failures = set(self.getProperty('with_patch_repeat_failures_results_nonflaky_failures', [])) |
|
Lines 2846-2852
class RunWebKitTestsRepeatFailuresWithoutPatchRedTree(RunWebKitTestsRedTree):
a/Tools/CISupport/ews-build/steps.py_sec4
|
| 2846 |
# is skipped anyways if is marked as such on the Expectation files or if is marked |
2849 |
# is skipped anyways if is marked as such on the Expectation files or if is marked |
| 2847 |
# as failure (since we are passing also '--skip-failing-tests'). That way we ensure |
2850 |
# as failure (since we are passing also '--skip-failing-tests'). That way we ensure |
| 2848 |
# to report the case of a patch removing an expectation that still fails with it. |
2851 |
# to report the case of a patch removing an expectation that still fails with it. |
| 2849 |
self.setCommand(self.command + ['--repeat-each=%s' % self.NUM_REPEATS_PER_TEST, '--skipped=always'] + sorted(failures_to_repeat)) |
2852 |
self.setCommand(self.command + ['--fully-parallel', '--repeat-each=%s' % self.NUM_REPEATS_PER_TEST, '--skipped=always'] + sorted(failures_to_repeat)) |
| 2850 |
|
2853 |
|
| 2851 |
def evaluateCommand(self, cmd): |
2854 |
def evaluateCommand(self, cmd): |
| 2852 |
rc = self.evaluateResult(cmd) |
2855 |
rc = self.evaluateResult(cmd) |