OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 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 """Uploads the results to the flakiness dashboard server.""" | 5 """Uploads the results to the flakiness dashboard server.""" |
6 # pylint: disable=E1002,R0201 | 6 # pylint: disable=E1002,R0201 |
7 | 7 |
8 import logging | 8 import logging |
9 import os | 9 import os |
10 import shutil | 10 import shutil |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 return dom.getElementsByTagName('entry')[0].getAttribute('revision') | 79 return dom.getElementsByTagName('entry')[0].getAttribute('revision') |
80 except xml.parsers.expat.ExpatError: | 80 except xml.parsers.expat.ExpatError: |
81 return '' | 81 return '' |
82 return '' | 82 return '' |
83 | 83 |
84 | 84 |
85 class ResultsUploader(object): | 85 class ResultsUploader(object): |
86 """Handles uploading buildbot tests results to the flakiness dashboard.""" | 86 """Handles uploading buildbot tests results to the flakiness dashboard.""" |
87 def __init__(self, tests_type): | 87 def __init__(self, tests_type): |
88 self._build_number = os.environ.get('BUILDBOT_BUILDNUMBER') | 88 self._build_number = os.environ.get('BUILDBOT_BUILDNUMBER') |
| 89 self._master_name = os.environ.get('BUILDBOT_MASTERNAME') |
89 self._builder_name = os.environ.get('BUILDBOT_BUILDERNAME') | 90 self._builder_name = os.environ.get('BUILDBOT_BUILDERNAME') |
90 self._tests_type = tests_type | 91 self._tests_type = tests_type |
| 92 self._build_name = None |
91 | 93 |
92 if not self._build_number or not self._builder_name: | 94 if not self._build_number or not self._builder_name: |
93 raise Exception('You should not be uploading tests results to the server' | 95 raise Exception('You should not be uploading tests results to the server' |
94 'from your local machine.') | 96 'from your local machine.') |
95 | 97 |
96 upstream = (tests_type != 'Chromium_Android_Instrumentation') | 98 upstream = (tests_type != 'Chromium_Android_Instrumentation') |
97 if upstream: | 99 if not upstream: |
98 # TODO(frankf): Use factory properties (see buildbot/bb_device_steps.py) | |
99 # This requires passing the actual master name (e.g. 'ChromiumFYI' not | |
100 # 'chromium.fyi'). | |
101 from slave import slave_utils # pylint: disable=F0401 | |
102 self._build_name = slave_utils.SlaveBuildName(host_paths.DIR_SOURCE_ROOT) | |
103 self._master_name = slave_utils.GetActiveMaster() | |
104 else: | |
105 self._build_name = 'chromium-android' | 100 self._build_name = 'chromium-android' |
106 buildbot_branch = os.environ.get('BUILDBOT_BRANCH') | 101 buildbot_branch = os.environ.get('BUILDBOT_BRANCH') |
107 if not buildbot_branch: | 102 if not buildbot_branch: |
108 buildbot_branch = 'master' | 103 buildbot_branch = 'master' |
109 else: | 104 else: |
110 # Ensure there's no leading "origin/" | 105 # Ensure there's no leading "origin/" |
111 buildbot_branch = buildbot_branch[buildbot_branch.find('/') + 1:] | 106 buildbot_branch = buildbot_branch[buildbot_branch.find('/') + 1:] |
112 self._master_name = '%s-%s' % (self._build_name, buildbot_branch) | 107 self._master_name = '%s-%s' % (self._build_name, buildbot_branch) |
113 | 108 |
114 self._test_results_map = {} | 109 self._test_results_map = {} |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 """Reports test results to the flakiness dashboard for Chrome for Android. | 167 """Reports test results to the flakiness dashboard for Chrome for Android. |
173 | 168 |
174 Args: | 169 Args: |
175 results: test results. | 170 results: test results. |
176 flakiness_dashboard_server: the server to upload the results to. | 171 flakiness_dashboard_server: the server to upload the results to. |
177 test_type: the type of the tests (as displayed by the flakiness dashboard). | 172 test_type: the type of the tests (as displayed by the flakiness dashboard). |
178 """ | 173 """ |
179 uploader = ResultsUploader(test_type) | 174 uploader = ResultsUploader(test_type) |
180 uploader.AddResults(results) | 175 uploader.AddResults(results) |
181 uploader.Upload(flakiness_dashboard_server) | 176 uploader.Upload(flakiness_dashboard_server) |
OLD | NEW |