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

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: 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
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 polling_builders = []
109 # Maps the parent builder to a set of the names of the builders it triggers.
110 trigger_map = collections.defaultdict(list)
111 # Maps the name of the parent builder to the (synthesized) name of its
112 # trigger, wrapped in a list.
113 trigger_name_map = {}
114 next_group_id = 0
115 # Note this code is very similar to that in recipe_master_helper.py.
116 # Unfortunately due to the different structure of this waterfall it's
117 # impossible to share the code.
118 def BuilderExists(name):
119 for s in gpu_slave_info:
120 if s['builder'] == name:
121 return True
122 return False
123
124 for slave in gpu_slave_info:
125 builder = slave['builder']
126 parent_builder = slave.get('triggered_by')
127 if parent_builder is not None:
128 if not BuilderExists(parent_builder):
129 raise Exception('Could not find parent builder %s for builder %s' %
130 (parent_builder, builder))
131 trigger_map[parent_builder].append(builder)
132 if parent_builder not in trigger_name_map:
133 trigger_name_map[parent_builder] = 'trigger_group_%d' % next_group_id
134 next_group_id += 1
135 else:
136 polling_builders.append(builder)
ghost stip (do not use) 2013/11/16 01:15:28 don't need polling_builders
Ken Russell (switch to Gerrit) 2013/11/16 01:25:06 Done.
137
138 # Create triggers
139 for trigger_name in trigger_name_map.values():
140 T(trigger_name)
141
142 # Set up bots
143 for slave in gpu_slave_info:
100 factory_properties = { 144 factory_properties = {
101 'test_results_server': 'test-results.appspot.com', 145 'test_results_server': 'test-results.appspot.com',
102 'generate_gtest_json': True, 146 'generate_gtest_json': True,
103 'build_config': bot['build_config'], 147 'build_config': slave['build_config'],
104 'top_of_tree_blink': True 148 'top_of_tree_blink': True
105 } 149 }
106 if 'perf_id' in bot: 150 if 'perf_id' in slave:
107 factory_properties['show_perf_results'] = True 151 factory_properties['show_perf_results'] = True
108 factory_properties['perf_id'] = bot['perf_id'] 152 factory_properties['perf_id'] = slave['perf_id']
109 B(bot['builder'], bot['factory_id'], scheduler='global_scheduler') 153 builder_name = slave['builder']
110 F(bot['factory_id'], m_annotator.BaseFactory( 154 scheduler = 'global_scheduler'
111 bot['recipe'], 155 if 'triggered_by' in slave:
112 factory_properties)) 156 scheduler = trigger_name_map[slave['triggered_by']]
157 B(builder_name, slave['factory_id'], scheduler=scheduler)
158 F(slave['factory_id'], m_annotator.BaseFactory(slave['recipe'],
159 factory_properties))
ghost stip (do not use) 2013/11/16 01:15:28 add trigger if builder_name in trigger_name_map
Ken Russell (switch to Gerrit) 2013/11/16 01:25:06 Thanks for catching that. That would have been a b
113 160
114 161
115 def Update(_config, _active_master, c): 162 def Update(_config, _active_master, c):
116 return helper.Update(c) 163 return helper.Update(c)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698