Chromium Code Reviews| 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 from buildbot.changes import svnpoller | 5 from buildbot.changes import svnpoller |
| 6 from buildbot.scheduler import Dependent | 6 from buildbot.scheduler import Dependent |
| 7 from buildbot.scheduler import Scheduler | 7 from buildbot.scheduler import Scheduler |
| 8 | 8 |
| 9 from master import build_utils | 9 from master import build_utils |
| 10 from master import master_config | 10 from master import master_config |
| 11 from master import master_utils | 11 from master import master_utils |
| 12 from master import slaves_list | 12 from master import slaves_list |
| 13 from master.factory import annotator_factory | |
| 13 from master.factory import chromium_factory | 14 from master.factory import chromium_factory |
| 14 | 15 |
| 15 import config | 16 import config |
| 16 import master_site_config | 17 import master_site_config |
| 17 | 18 |
| 18 ActiveMaster = master_site_config.ChromiumGPUFYI | 19 ActiveMaster = master_site_config.ChromiumGPUFYI |
| 19 | 20 |
| 20 # This is the dictionary that the buildmaster pays attention to. We also use | 21 # This is the dictionary that the buildmaster pays attention to. We also use |
| 21 # a shorter alias to save typing. | 22 # a shorter alias to save typing. |
| 22 c = BuildmasterConfig = {} | 23 c = BuildmasterConfig = {} |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 45 # Polls config.Master.trunk_url for changes | 46 # Polls config.Master.trunk_url for changes |
| 46 chromium_rev = 'http://src.chromium.org/viewvc/chrome?view=rev&revision=%s' | 47 chromium_rev = 'http://src.chromium.org/viewvc/chrome?view=rev&revision=%s' |
| 47 trunk_poller = svnpoller.SVNPoller(svnurl=config.Master.trunk_url, | 48 trunk_poller = svnpoller.SVNPoller(svnurl=config.Master.trunk_url, |
| 48 split_file=ChromeTreeFileSplitter, | 49 split_file=ChromeTreeFileSplitter, |
| 49 pollinterval=10, | 50 pollinterval=10, |
| 50 revlinktmpl=chromium_rev) | 51 revlinktmpl=chromium_rev) |
| 51 | 52 |
| 52 c['change_source'] = [trunk_poller] | 53 c['change_source'] = [trunk_poller] |
| 53 | 54 |
| 54 | 55 |
| 56 ####### SLAVES | |
| 57 | |
| 58 # Load the slave list. We need some information from it in order to | |
| 59 # produce the builders. | |
| 60 slaves = slaves_list.SlavesList('slaves.cfg', 'ChromiumGPUFYI') | |
| 61 | |
| 62 | |
| 55 ####### SCHEDULERS | 63 ####### SCHEDULERS |
| 56 | 64 |
| 57 ## configure the Schedulers | 65 ## configure the Schedulers |
| 58 | 66 |
| 59 # Main scheduler for all changes in trunk. | 67 # Main scheduler for all changes in trunk. |
| 60 | 68 |
| 61 s_gpu = Scheduler(name='gpu', | 69 s_gpu = Scheduler(name='gpu', |
| 62 branch='src', | 70 branch='src', |
| 63 treeStableTimer=60, | 71 treeStableTimer=60, |
| 64 builderNames=['WinXP Release (NVIDIA)', | 72 builderNames=['WinXP Release (NVIDIA)', |
| 65 'WinXP Debug (NVIDIA)', | 73 'WinXP Debug (NVIDIA)', |
| 66 'Linux Release (Intel)', | 74 'Linux Release (Intel)', |
| 67 'Linux Release (ATI)', | 75 'Linux Release (ATI)', |
| 68 'Win7 Audio', | 76 'Win7 Audio', |
| 69 'Linux Audio',]) | 77 'Linux Audio',]) |
| 70 c['schedulers'] = [s_gpu] | 78 c['schedulers'] = [s_gpu] |
| 71 | 79 |
| 72 ####### BUILDERS | 80 ####### BUILDERS |
| 73 | 81 |
| 74 builders = [] | 82 builders = [] |
| 75 | 83 |
| 76 # ---------------------------------------------------------------------------- | 84 # ---------------------------------------------------------------------------- |
| 77 # FACTORIES | 85 # FACTORIES |
| 78 | 86 |
| 87 m_annotator = annotator_factory.AnnotatorFactory() | |
| 88 | |
| 89 # TODO(kbr): rtoy: switch the Audio bots to use recipes too. | |
|
agable
2013/09/27 19:57:26
rtoy?
Ken Russell (switch to Gerrit)
2013/09/27 20:30:07
rtoy@ to be more precise.
| |
| 90 | |
| 79 # Using src/webkit is necessary for running the layout tests on Windows. | 91 # Using src/webkit is necessary for running the layout tests on Windows. |
| 80 # However, the 'all' project resides in src/build. Thus, build in one place and | 92 # However, the 'all' project resides in src/build. Thus, build in one place and |
| 81 # test in another. Thus, it is impossible to build and test on the same Windows | 93 # test in another. Thus, it is impossible to build and test on the same Windows |
| 82 # bot. | 94 # bot. |
| 83 m_win = chromium_factory.ChromiumFactory('src/build', 'win32') | 95 m_win = chromium_factory.ChromiumFactory('src/build', 'win32') |
| 84 m_linux = chromium_factory.ChromiumFactory('src/out', 'linux2') | 96 m_linux = chromium_factory.ChromiumFactory('src/out', 'linux2') |
| 85 | 97 |
| 86 # Some shortcut to simplify the code below. | 98 # Some shortcut to simplify the code below. |
| 87 F_WIN = m_win.ChromiumGPUFactory | |
| 88 F_WIN_AUDIO = m_win.ChromiumFactory | 99 F_WIN_AUDIO = m_win.ChromiumFactory |
| 89 F_LINUX = m_linux.ChromiumGPUFactory | |
| 90 F_LINUX_AUDIO = m_linux.ChromiumFactory | 100 F_LINUX_AUDIO = m_linux.ChromiumFactory |
| 91 | 101 |
| 92 full_test_suite = [ | |
| 93 'content_gl_tests', | |
| 94 'gles2_conform_test', | |
| 95 'gl_tests', | |
| 96 'gpu_content_tests', | |
| 97 'gpu_frame_rate', | |
| 98 'gpu_throughput', | |
| 99 'tab_capture_performance', | |
| 100 ] | |
| 101 | |
| 102 debug_test_suite = [ | |
| 103 'content_gl_tests', | |
| 104 'gles2_conform_test', | |
| 105 'gl_tests', | |
| 106 'gpu_content_tests', | |
| 107 ] | |
| 108 | |
| 109 f_winxp_rel = F_WIN( | |
| 110 project='all.sln;chromium_gpu_builder', | |
| 111 target='Release', | |
| 112 slave_type='BuilderTester', | |
| 113 tests=full_test_suite, | |
| 114 factory_properties={ | |
| 115 'gclient_env': { | |
| 116 'GYP_DEFINES': 'fastbuild=1 internal_gles2_conform_tests=1', | |
| 117 }, | |
| 118 'perf_id': 'gpu-fyi-winxp-release-nvidia', | |
| 119 'show_perf_results': True, | |
| 120 'test_results_server': 'test-results.appspot.com', | |
| 121 'generate_gtest_json': True, | |
| 122 }) | |
| 123 | |
| 124 f_winxp_dbg = F_WIN( | |
| 125 project='all.sln;chromium_gpu_debug_builder', | |
| 126 target='Debug', | |
| 127 slave_type='BuilderTester', | |
| 128 tests=debug_test_suite, | |
| 129 factory_properties={ | |
| 130 'gclient_env': { | |
| 131 'GYP_DEFINES': 'fastbuild=1 internal_gles2_conform_tests=1', | |
| 132 }, | |
| 133 'perf_id': 'gpu-fyi-winxp-debug-nvidia', | |
| 134 'show_perf_results': True, | |
| 135 'test_results_server': 'test-results.appspot.com', | |
| 136 'generate_gtest_json': True, | |
| 137 }) | |
| 138 | |
| 139 f_linux_intel_rel = F_LINUX( | |
| 140 target='Release', | |
| 141 slave_type='BuilderTester', | |
| 142 options=['chromium_gpu_builder'], | |
| 143 tests=full_test_suite, | |
| 144 factory_properties={ | |
| 145 'perf_id': 'gpu-fyi-linux-release-intel', | |
| 146 'show_perf_results': True, | |
| 147 'test_results_server': 'test-results.appspot.com', | |
| 148 'generate_gtest_json': True, | |
| 149 'gclient_env': { | |
| 150 'GYP_DEFINES': 'internal_gles2_conform_tests=1', | |
| 151 }, | |
| 152 }) | |
| 153 | |
| 154 f_linux_ati_rel = F_LINUX( | |
| 155 target='Release', | |
| 156 slave_type='BuilderTester', | |
| 157 options=['chromium_gpu_builder'], | |
| 158 tests=full_test_suite, | |
| 159 factory_properties={ | |
| 160 'perf_id': 'gpu-fyi-linux-release-ati', | |
| 161 'show_perf_results': True, | |
| 162 'test_results_server': 'test-results.appspot.com', | |
| 163 'generate_gtest_json': True, | |
| 164 'gclient_env': { | |
| 165 'GYP_DEFINES': 'internal_gles2_conform_tests=1', | |
| 166 }, | |
| 167 }) | |
| 168 | |
| 169 f_win_audio_rel = F_WIN_AUDIO( | 102 f_win_audio_rel = F_WIN_AUDIO( |
| 170 project='all.sln;chromium_builder_tests', | 103 project='all.sln;chromium_builder_tests', |
| 171 target='Release', | 104 target='Release', |
| 172 slave_type='BuilderTester', | 105 slave_type='BuilderTester', |
| 173 tests=[ | 106 tests=[ |
| 174 'content_unittests', | 107 'content_unittests', |
| 175 'media', | 108 'media', |
| 176 ], | 109 ], |
| 177 factory_properties={'gclient_env': {'GYP_DEFINES': 'fastbuild=1'}, | 110 factory_properties={'gclient_env': {'GYP_DEFINES': 'fastbuild=1'}, |
| 178 'test_results_server': 'test-results.appspot.com', | 111 'test_results_server': 'test-results.appspot.com', |
| 179 'generate_gtest_json': True}) | 112 'generate_gtest_json': True}) |
| 180 | 113 |
| 181 f_linux_audio_rel = F_LINUX_AUDIO( | 114 f_linux_audio_rel = F_LINUX_AUDIO( |
| 182 target='Release', | 115 target='Release', |
| 183 slave_type='BuilderTester', | 116 slave_type='BuilderTester', |
| 184 options=['content_unittests', 'media_unittests'], | 117 options=['content_unittests', 'media_unittests'], |
| 185 tests=[ | 118 tests=[ |
| 186 'content_unittests', | 119 'content_unittests', |
| 187 'media', | 120 'media', |
| 188 ], | 121 ], |
| 189 factory_properties={'test_results_server': 'test-results.appspot.com', | 122 factory_properties={'test_results_server': 'test-results.appspot.com', |
| 190 'generate_gtest_json': True}) | 123 'generate_gtest_json': True}) |
| 191 | 124 |
| 192 | 125 |
| 193 # ---------------------------------------------------------------------------- | 126 # ---------------------------------------------------------------------------- |
| 194 # BUILDER DEFINITIONS | 127 # BUILDER DEFINITIONS |
| 195 | 128 |
| 196 b_win_1 = {'name': 'WinXP Release (NVIDIA)', | 129 gpu_builders = [] |
| 197 'factory': f_winxp_rel} | 130 for slave in slaves.slaves: |
| 198 | 131 if not slave.get('is_audio'): |
| 199 b_win_2 = {'name': 'WinXP Debug (NVIDIA)', | 132 factory_properties = { |
| 200 'factory': f_winxp_dbg} | 133 'test_results_server': 'test-results.appspot.com', |
| 201 | 134 'generate_gtest_json': True, |
| 202 b_linux_1 = {'name': 'Linux Release (Intel)', | 135 'build_config': 'Debug' |
| 203 'factory': f_linux_intel_rel} | 136 } |
| 204 | 137 if 'perf_id' in slave: |
| 205 b_linux_2 = {'name': 'Linux Release (ATI)', | 138 factory_properties['show_perf_results'] = True |
| 206 'factory': f_linux_ati_rel} | 139 factory_properties['perf_id'] = slave['perf_id'] |
| 140 factory_properties['build_config'] = 'Release' | |
| 141 gpu_builders.append({ | |
| 142 'name': slave['builder'], | |
| 143 'factory': m_annotator.BaseFactory('gpu', factory_properties) | |
| 144 }) | |
| 207 | 145 |
| 208 b_win_audio = {'name': 'Win7 Audio', | 146 b_win_audio = {'name': 'Win7 Audio', |
| 209 'factory': f_win_audio_rel} | 147 'factory': f_win_audio_rel} |
| 210 | 148 |
| 211 b_linux_audio = {'name': 'Linux Audio', | 149 b_linux_audio = {'name': 'Linux Audio', |
| 212 'factory': f_linux_audio_rel} | 150 'factory': f_linux_audio_rel} |
| 213 | 151 |
| 214 # Order them by OS type, target type, and OS version. | 152 # Order them by OS type, target type, and OS version. |
| 215 c['builders'] = [ | 153 c['builders'] = gpu_builders + [ b_win_audio, b_linux_audio ] |
| 216 b_win_1, | |
| 217 b_win_2, | |
| 218 b_linux_1, | |
| 219 b_linux_2, | |
| 220 b_win_audio, | |
| 221 b_linux_audio, | |
| 222 ] | |
| 223 | 154 |
| 224 # Associate the slaves to the manual builders. The configuration is in | 155 # Associate the slaves to the manual builders. The configuration is in |
| 225 # slaves.cfg. | 156 # slaves.cfg. |
| 226 slaves = slaves_list.SlavesList('slaves.cfg', 'ChromiumGPUFYI') | |
| 227 for builder in c['builders']: | 157 for builder in c['builders']: |
| 228 builder['slavenames'] = slaves.GetSlavesName(builder=builder['name']) | 158 builder['slavenames'] = slaves.GetSlavesName(builder=builder['name']) |
| 229 | 159 |
| 230 ####### BUILDSLAVES | 160 ####### BUILDSLAVES |
| 231 | 161 |
| 232 # The 'slaves' list defines the set of allowable buildslaves. List all the | 162 # The 'slaves' list defines the set of allowable buildslaves. List all the |
| 233 # slaves registered to a builder. Remove dupes. | 163 # slaves registered to a builder. Remove dupes. |
| 234 c['slaves'] = master_utils.AutoSetupSlaves(c['builders'], | 164 c['slaves'] = master_utils.AutoSetupSlaves(c['builders'], |
| 235 config.Master.GetBotPassword()) | 165 config.Master.GetBotPassword()) |
| 236 | 166 |
| 237 # Make sure everything works together. | 167 # Make sure everything works together. |
| 238 master_utils.VerifySetup(c, slaves) | 168 master_utils.VerifySetup(c, slaves) |
| 239 | 169 |
| 240 ####### STATUS TARGETS | 170 ####### STATUS TARGETS |
| 241 | 171 |
| 242 # Adds common status and tools to this master. | 172 # Adds common status and tools to this master. |
| 243 master_utils.AutoSetupMaster(c, ActiveMaster, | 173 master_utils.AutoSetupMaster(c, ActiveMaster, |
| 244 public_html='../master.chromium/public_html', | 174 public_html='../master.chromium/public_html', |
| 245 templates=['../master.chromium/templates'], | 175 templates=['../master.chromium/templates'], |
| 246 enable_http_status_push=ActiveMaster.is_production_host) | 176 enable_http_status_push=ActiveMaster.is_production_host) |
| 247 | 177 |
| 248 ####### PROJECT IDENTITY | 178 ####### PROJECT IDENTITY |
| 249 | 179 |
| 250 # Buildbot master url: | 180 # Buildbot master url: |
| 251 c['buildbotURL'] = 'http://build.chromium.org/p/chromium.gpu.fyi/' | 181 c['buildbotURL'] = 'http://build.chromium.org/p/chromium.gpu.fyi/' |
| OLD | NEW |