Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: masters/master.chromium.webkit/master_gpu_latest_cfg.py

Issue 74063005: Switched remaining GPU test bots to be pure testers, triggered by builders. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Addressed stip's review feedback. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « masters/master.chromium.gpu/slaves.cfg ('k') | scripts/master/recipe_master_helper.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 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 5
6 from master import master_config 6 from master import master_config
7 from master.factory import annotator_factory 7 from master.factory import annotator_factory
8 8
9 import collections
10
9 defaults = {} 11 defaults = {}
10 12
11 helper = master_config.Helper(defaults) 13 helper = master_config.Helper(defaults)
12 B = helper.Builder 14 B = helper.Builder
13 F = helper.Factory 15 F = helper.Factory
16 T = helper.Triggerable
14 17
15 # TODO(kbr): it would be better if this waterfall were refactored so 18 # TODO(kbr): it would be better if this waterfall were refactored so
16 # that we could access the slaves_list here. 19 # that we could access the slaves_list here.
17 gpu_bot_info = [ 20 gpu_slave_info = [
18 { 21 {
19 'builder': 'GPU Win Builder', 22 'builder': 'GPU Win Builder',
20 'factory_id': 'f_gpu_win_builder_rel', 23 'factory_id': 'f_gpu_win_builder_rel',
21 'recipe': 'gpu/build_and_upload', 24 'recipe': 'gpu/build_and_upload',
22 'build_config': 'Release', 25 'build_config': 'Release',
23 }, 26 },
24 { 27 {
25 'builder': 'GPU Win Builder (dbg)', 28 'builder': 'GPU Win Builder (dbg)',
26 'factory_id': 'f_gpu_win_builder_dbg', 29 'factory_id': 'f_gpu_win_builder_dbg',
27 'recipe': 'gpu/build_and_upload', 30 'recipe': 'gpu/build_and_upload',
28 'build_config': 'Debug', 31 'build_config': 'Debug',
29 }, 32 },
30 { 33 {
31 'builder': 'GPU Win7 (NVIDIA)', 34 'builder': 'GPU Win7 (NVIDIA)',
32 'factory_id': 'f_gpu_win_rel', 35 'factory_id': 'f_gpu_win_rel',
33 'recipe': 'gpu/build_and_test', 36 'recipe': 'gpu/download_and_test',
34 'build_config': 'Release', 37 'build_config': 'Release',
35 'perf_id': 'gpu-webkit-win7-nvidia', 38 'perf_id': 'gpu-webkit-win7-nvidia',
39 'triggered_by': 'GPU Win Builder',
36 }, 40 },
37 { 41 {
38 'builder': 'GPU Win7 (dbg) (NVIDIA)', 42 'builder': 'GPU Win7 (dbg) (NVIDIA)',
39 'factory_id': 'f_gpu_win_dbg', 43 'factory_id': 'f_gpu_win_dbg',
40 'recipe': 'gpu/build_and_test', 44 'recipe': 'gpu/download_and_test',
41 'build_config': 'Debug', 45 'build_config': 'Debug',
46 'triggered_by': 'GPU Win Builder (dbg)',
42 }, 47 },
43 { 48 {
44 'builder': 'GPU Mac Builder', 49 'builder': 'GPU Mac Builder',
45 'factory_id': 'f_gpu_mac_builder_rel', 50 'factory_id': 'f_gpu_mac_builder_rel',
46 'recipe': 'gpu/build_and_upload', 51 'recipe': 'gpu/build_and_upload',
47 'build_config': 'Release', 52 'build_config': 'Release',
48 }, 53 },
49 { 54 {
50 'builder': 'GPU Mac Builder (dbg)', 55 'builder': 'GPU Mac Builder (dbg)',
51 'factory_id': 'f_gpu_mac_builder_dbg', 56 'factory_id': 'f_gpu_mac_builder_dbg',
52 'recipe': 'gpu/build_and_upload', 57 'recipe': 'gpu/build_and_upload',
53 'build_config': 'Debug', 58 'build_config': 'Debug',
54 }, 59 },
55 { 60 {
56 'builder': 'GPU Mac10.7', 61 'builder': 'GPU Mac10.7',
57 'factory_id': 'f_gpu_mac_rel', 62 'factory_id': 'f_gpu_mac_rel',
58 'recipe': 'gpu/build_and_test', 63 'recipe': 'gpu/download_and_test',
59 'build_config': 'Release', 64 'build_config': 'Release',
60 'perf_id': 'gpu-webkit-mac', 65 'perf_id': 'gpu-webkit-mac',
66 'triggered_by': 'GPU Mac Builder',
61 }, 67 },
62 { 68 {
63 'builder': 'GPU Mac10.7 (dbg)', 69 'builder': 'GPU Mac10.7 (dbg)',
64 'factory_id': 'f_gpu_mac_dbg', 70 'factory_id': 'f_gpu_mac_dbg',
65 'recipe': 'gpu/build_and_test', 71 'recipe': 'gpu/download_and_test',
66 'build_config': 'Debug', 72 'build_config': 'Debug',
73 'triggered_by': 'GPU Mac Builder (dbg)',
67 }, 74 },
68 { 75 {
69 'builder': 'GPU Linux Builder', 76 'builder': 'GPU Linux Builder',
70 'factory_id': 'f_gpu_linux_builder_rel', 77 'factory_id': 'f_gpu_linux_builder_rel',
71 'recipe': 'gpu/build_and_upload', 78 'recipe': 'gpu/build_and_upload',
72 'build_config': 'Release', 79 'build_config': 'Release',
73 }, 80 },
74 { 81 {
75 'builder': 'GPU Linux Builder (dbg)', 82 'builder': 'GPU Linux Builder (dbg)',
76 'factory_id': 'f_gpu_linux_builder_dbg', 83 'factory_id': 'f_gpu_linux_builder_dbg',
77 'recipe': 'gpu/build_and_upload', 84 'recipe': 'gpu/build_and_upload',
78 'build_config': 'Debug', 85 'build_config': 'Debug',
79 }, 86 },
80 { 87 {
81 'builder': 'GPU Linux (NVIDIA)', 88 'builder': 'GPU Linux (NVIDIA)',
82 'factory_id': 'f_gpu_linux_rel', 89 'factory_id': 'f_gpu_linux_rel',
83 'recipe': 'gpu/build_and_test', 90 'recipe': 'gpu/download_and_test',
84 'build_config': 'Release', 91 'build_config': 'Release',
85 'perf_id': 'gpu-webkit-linux-nvidia', 92 'perf_id': 'gpu-webkit-linux-nvidia',
93 'triggered_by': 'GPU Linux Builder',
86 }, 94 },
87 { 95 {
88 'builder': 'GPU Linux (dbg) (NVIDIA)', 96 'builder': 'GPU Linux (dbg) (NVIDIA)',
89 'factory_id': 'f_gpu_linux_dbg', 97 'factory_id': 'f_gpu_linux_dbg',
90 'recipe': 'gpu/build_and_test', 98 'recipe': 'gpu/download_and_test',
91 'build_config': 'Debug', 99 'build_config': 'Debug',
100 'triggered_by': 'GPU Linux Builder (dbg)',
92 }, 101 },
93 ] 102 ]
94 103
95 m_annotator = annotator_factory.AnnotatorFactory() 104 m_annotator = annotator_factory.AnnotatorFactory()
96 105
97 defaults['category'] = 'gpu' 106 defaults['category'] = 'gpu'
98 107
99 for bot in gpu_bot_info: 108 # Maps the parent builder to a set of the names of the builders it triggers.
109 trigger_map = collections.defaultdict(list)
110 # Maps the name of the parent builder to the (synthesized) name of its
111 # trigger, wrapped in a list.
112 trigger_name_map = {}
113 next_group_id = 0
114 # Note this code is very similar to that in recipe_master_helper.py.
115 # Unfortunately due to the different structure of this waterfall it's
116 # impossible to share the code.
117 def BuilderExists(builder_name):
118 for s in gpu_slave_info:
119 if s['builder'] == builder_name:
120 return True
121 return False
122
123 for slave in gpu_slave_info:
124 builder = slave['builder']
125 parent_builder = slave.get('triggered_by')
126 if parent_builder is not None:
127 if not BuilderExists(parent_builder):
128 raise Exception('Could not find parent builder %s for builder %s' %
129 (parent_builder, builder))
130 trigger_map[parent_builder].append(builder)
131 if parent_builder not in trigger_name_map:
132 trigger_name_map[parent_builder] = 'trigger_group_%d' % next_group_id
133 next_group_id += 1
134
135 # Create triggers
136 for trigger_name in trigger_name_map.values():
137 T(trigger_name)
138
139 # Set up bots
140 for slave in gpu_slave_info:
100 factory_properties = { 141 factory_properties = {
101 'test_results_server': 'test-results.appspot.com', 142 'test_results_server': 'test-results.appspot.com',
102 'generate_gtest_json': True, 143 'generate_gtest_json': True,
103 'build_config': bot['build_config'], 144 'build_config': slave['build_config'],
104 'top_of_tree_blink': True 145 'top_of_tree_blink': True
105 } 146 }
106 if 'perf_id' in bot: 147 if 'perf_id' in slave:
107 factory_properties['show_perf_results'] = True 148 factory_properties['show_perf_results'] = True
108 factory_properties['perf_id'] = bot['perf_id'] 149 factory_properties['perf_id'] = slave['perf_id']
109 B(bot['builder'], bot['factory_id'], scheduler='global_scheduler') 150 name = slave['builder']
110 F(bot['factory_id'], m_annotator.BaseFactory( 151 scheduler = 'global_scheduler'
111 bot['recipe'], 152 if 'triggered_by' in slave:
112 factory_properties)) 153 scheduler = trigger_name_map[slave['triggered_by']]
154 B(name, slave['factory_id'], scheduler=scheduler)
155 F(slave['factory_id'], m_annotator.BaseFactory(
156 slave['recipe'],
157 factory_properties,
158 [trigger_name_map[name]] if name in trigger_name_map else None))
113 159
114 160
115 def Update(_config, _active_master, c): 161 def Update(_config, _active_master, c):
116 return helper.Update(c) 162 return helper.Update(c)
OLDNEW
« no previous file with comments | « masters/master.chromium.gpu/slaves.cfg ('k') | scripts/master/recipe_master_helper.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698