Index: infra/bots/recipes/swarm_compile.py |
diff --git a/infra/bots/recipes/swarm_compile.py b/infra/bots/recipes/swarm_compile.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8e7370fdbc8698360aeeec90c93738ac66e68e18 |
--- /dev/null |
+++ b/infra/bots/recipes/swarm_compile.py |
@@ -0,0 +1,119 @@ |
+# Copyright 2016 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+ |
+# Recipe module for Skia Swarming compile. |
+ |
+ |
+DEPS = [ |
+ 'recipe_engine/json', |
+ 'recipe_engine/path', |
+ 'recipe_engine/platform', |
+ 'recipe_engine/properties', |
+ 'skia', |
+] |
+ |
+ |
+TEST_BUILDERS = { |
+ 'client.skia.compile': { |
+ 'skiabot-linux-swarm-000': [ |
+ 'Build-Mac-Clang-Arm7-Debug-Android', |
+ 'Build-Mac-Clang-Arm7-Release-iOS', |
+ 'Build-Mac-Clang-x86_64-Debug-CommandBuffer', |
+ 'Build-Mac-Clang-x86_64-Release-CMake', |
+ 'Build-Ubuntu-GCC-Arm7-Debug-Android-Trybot', |
+ 'Build-Ubuntu-GCC-Arm7-Release-Android', |
+ 'Build-Ubuntu-GCC-Arm7-Release-Android_Vulkan', |
+ 'Build-Ubuntu-GCC-x86_64-Debug-MSAN', |
+ 'Build-Ubuntu-GCC-x86_64-Release-CMake', |
+ 'Build-Ubuntu-GCC-x86_64-Release-PDFium', |
+ 'Build-Ubuntu-GCC-x86_64-Release-Shared', |
+ 'Build-Ubuntu-GCC-x86_64-Release-Valgrind', |
+ 'Build-Win-MSVC-x86-Debug', |
+ 'Build-Win-MSVC-x86_64-Release-Vulkan', |
+ ], |
+ }, |
+} |
+ |
+ |
+def RunSteps(api): |
+ api.skia.setup() |
+ api.skia.compile_steps() |
+ api.skia.cleanup_steps() |
+ api.skia.check_failure() |
+ |
+ |
+def GenTests(api): |
+ for mastername, slaves in TEST_BUILDERS.iteritems(): |
+ for slavename, builders_by_slave in slaves.iteritems(): |
+ for builder in builders_by_slave: |
+ test = ( |
+ api.test(builder) + |
+ api.properties(buildername=builder, |
+ mastername=mastername, |
+ slavename=slavename, |
+ buildnumber=5, |
+ revision='abc123', |
+ path_config='kitchen', |
+ swarm_out_dir='[SWARM_OUT_DIR]') + |
+ api.path.exists( |
+ api.path['slave_build'].join('tmp', 'uninteresting_hashes.txt') |
+ ) |
+ ) |
+ if 'Win' in builder: |
+ test += api.platform('win', 64) |
+ elif 'Mac' in builder: |
+ test += api.platform('mac', 64) |
+ else: |
+ test += api.platform('linux', 64) |
+ if 'Android' in builder: |
+ ccache = '/usr/bin/ccache' |
+ test += api.step_data('has ccache?', |
+ stdout=api.json.output({'ccache':ccache})) |
+ test += api.step_data( |
+ 'which adb', |
+ retcode=1) |
+ if 'Trybot' in builder: |
+ test += api.properties(issue=500, |
+ patchset=1, |
+ rietveld='https://codereview.chromium.org') |
+ |
+ yield test |
+ |
+ mastername = 'client.skia.compile' |
+ slavename = 'skiabot-win-compile-000' |
+ buildername = 'Build-Win-MSVC-x86-Debug' |
+ yield ( |
+ api.test('win_retry_failed_compile') + |
+ api.properties(buildername=buildername, |
+ mastername=mastername, |
+ slavename=slavename, |
+ buildnumber=5, |
+ revision='abc123', |
+ path_config='kitchen', |
+ swarm_out_dir='[SWARM_OUT_DIR]') + |
+ api.path.exists( |
+ api.path['slave_build'].join('tmp', 'uninteresting_hashes.txt') |
+ ) + |
+ api.platform('win', 64) + |
+ api.step_data('build most', retcode=1) |
+ ) |
+ |
+ yield ( |
+ api.test('big_issue_number') + |
+ api.properties(buildername=buildername, |
+ mastername=mastername, |
+ slavename=slavename, |
+ buildnumber=5, |
+ revision='abc123', |
+ path_config='kitchen', |
+ swarm_out_dir='[SWARM_OUT_DIR]', |
+ rietveld='https://codereview.chromium.org', |
+ patchset=1, |
+ issue=2147533002L) + |
+ api.path.exists( |
+ api.path['slave_build'].join('tmp', 'uninteresting_hashes.txt') |
+ ) + |
+ api.platform('win', 64) |
+ ) |