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

Unified 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 side-by-side diff with in-line comments
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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: masters/master.chromium.webkit/master_gpu_latest_cfg.py
diff --git a/masters/master.chromium.webkit/master_gpu_latest_cfg.py b/masters/master.chromium.webkit/master_gpu_latest_cfg.py
index 77c96fa17e0e6c03991fc5e7cd25881c38543c41..311e4a364f5b3cbb242b73486cff0c5427676239 100644
--- a/masters/master.chromium.webkit/master_gpu_latest_cfg.py
+++ b/masters/master.chromium.webkit/master_gpu_latest_cfg.py
@@ -6,15 +6,18 @@
from master import master_config
from master.factory import annotator_factory
+import collections
+
defaults = {}
helper = master_config.Helper(defaults)
B = helper.Builder
F = helper.Factory
+T = helper.Triggerable
# TODO(kbr): it would be better if this waterfall were refactored so
# that we could access the slaves_list here.
-gpu_bot_info = [
+gpu_slave_info = [
{
'builder': 'GPU Win Builder',
'factory_id': 'f_gpu_win_builder_rel',
@@ -30,15 +33,17 @@ gpu_bot_info = [
{
'builder': 'GPU Win7 (NVIDIA)',
'factory_id': 'f_gpu_win_rel',
- 'recipe': 'gpu/build_and_test',
+ 'recipe': 'gpu/download_and_test',
'build_config': 'Release',
'perf_id': 'gpu-webkit-win7-nvidia',
+ 'triggered_by': 'GPU Win Builder',
},
{
'builder': 'GPU Win7 (dbg) (NVIDIA)',
'factory_id': 'f_gpu_win_dbg',
- 'recipe': 'gpu/build_and_test',
+ 'recipe': 'gpu/download_and_test',
'build_config': 'Debug',
+ 'triggered_by': 'GPU Win Builder (dbg)',
},
{
'builder': 'GPU Mac Builder',
@@ -55,15 +60,17 @@ gpu_bot_info = [
{
'builder': 'GPU Mac10.7',
'factory_id': 'f_gpu_mac_rel',
- 'recipe': 'gpu/build_and_test',
+ 'recipe': 'gpu/download_and_test',
'build_config': 'Release',
'perf_id': 'gpu-webkit-mac',
+ 'triggered_by': 'GPU Mac Builder',
},
{
'builder': 'GPU Mac10.7 (dbg)',
'factory_id': 'f_gpu_mac_dbg',
- 'recipe': 'gpu/build_and_test',
+ 'recipe': 'gpu/download_and_test',
'build_config': 'Debug',
+ 'triggered_by': 'GPU Mac Builder (dbg)',
},
{
'builder': 'GPU Linux Builder',
@@ -80,15 +87,17 @@ gpu_bot_info = [
{
'builder': 'GPU Linux (NVIDIA)',
'factory_id': 'f_gpu_linux_rel',
- 'recipe': 'gpu/build_and_test',
+ 'recipe': 'gpu/download_and_test',
'build_config': 'Release',
'perf_id': 'gpu-webkit-linux-nvidia',
+ 'triggered_by': 'GPU Linux Builder',
},
{
'builder': 'GPU Linux (dbg) (NVIDIA)',
'factory_id': 'f_gpu_linux_dbg',
- 'recipe': 'gpu/build_and_test',
+ 'recipe': 'gpu/download_and_test',
'build_config': 'Debug',
+ 'triggered_by': 'GPU Linux Builder (dbg)',
},
]
@@ -96,20 +105,57 @@ m_annotator = annotator_factory.AnnotatorFactory()
defaults['category'] = 'gpu'
-for bot in gpu_bot_info:
+# Maps the parent builder to a set of the names of the builders it triggers.
+trigger_map = collections.defaultdict(list)
+# Maps the name of the parent builder to the (synthesized) name of its
+# trigger, wrapped in a list.
+trigger_name_map = {}
+next_group_id = 0
+# Note this code is very similar to that in recipe_master_helper.py.
+# Unfortunately due to the different structure of this waterfall it's
+# impossible to share the code.
+def BuilderExists(builder_name):
+ for s in gpu_slave_info:
+ if s['builder'] == builder_name:
+ return True
+ return False
+
+for slave in gpu_slave_info:
+ builder = slave['builder']
+ parent_builder = slave.get('triggered_by')
+ if parent_builder is not None:
+ if not BuilderExists(parent_builder):
+ raise Exception('Could not find parent builder %s for builder %s' %
+ (parent_builder, builder))
+ trigger_map[parent_builder].append(builder)
+ if parent_builder not in trigger_name_map:
+ trigger_name_map[parent_builder] = 'trigger_group_%d' % next_group_id
+ next_group_id += 1
+
+# Create triggers
+for trigger_name in trigger_name_map.values():
+ T(trigger_name)
+
+# Set up bots
+for slave in gpu_slave_info:
factory_properties = {
'test_results_server': 'test-results.appspot.com',
'generate_gtest_json': True,
- 'build_config': bot['build_config'],
+ 'build_config': slave['build_config'],
'top_of_tree_blink': True
}
- if 'perf_id' in bot:
+ if 'perf_id' in slave:
factory_properties['show_perf_results'] = True
- factory_properties['perf_id'] = bot['perf_id']
- B(bot['builder'], bot['factory_id'], scheduler='global_scheduler')
- F(bot['factory_id'], m_annotator.BaseFactory(
- bot['recipe'],
- factory_properties))
+ factory_properties['perf_id'] = slave['perf_id']
+ name = slave['builder']
+ scheduler = 'global_scheduler'
+ if 'triggered_by' in slave:
+ scheduler = trigger_name_map[slave['triggered_by']]
+ B(name, slave['factory_id'], scheduler=scheduler)
+ F(slave['factory_id'], m_annotator.BaseFactory(
+ slave['recipe'],
+ factory_properties,
+ [trigger_name_map[name]] if name in trigger_name_map else None))
def Update(_config, _active_master, c):
« 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