aboutsummaryrefslogtreecommitdiffhomepage
path: root/infra/bots/recipe_modules
diff options
context:
space:
mode:
authorGravatar Eric Boren <borenet@google.com>2018-05-14 12:50:38 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-05-14 17:27:49 +0000
commit9030b94c6012c7f02ba91ed352503a44c22764eb (patch)
treebd07b3ef1777c6bda58fd965a880b3ef681419bb /infra/bots/recipe_modules
parent297e86b43e2671c861c3228c474c11fc9a332ca5 (diff)
[recipes] Separate build and test flavors
Bug: skia:6473 Change-Id: If1d6e1f64ec53624e7b540abd9d8a61cc82c4e0a Reviewed-on: https://skia-review.googlesource.com/125947 Reviewed-by: Ben Wagner <benjaminwagner@google.com> Commit-Queue: Eric Boren <borenet@google.com>
Diffstat (limited to 'infra/bots/recipe_modules')
-rw-r--r--infra/bots/recipe_modules/build/__init__.py21
-rw-r--r--infra/bots/recipe_modules/build/android.py104
-rw-r--r--infra/bots/recipe_modules/build/api.py48
-rw-r--r--infra/bots/recipe_modules/build/chromebook.py101
-rw-r--r--infra/bots/recipe_modules/build/chromecast.py70
-rw-r--r--infra/bots/recipe_modules/build/default.py280
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_API26.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_ASAN.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm-Release-Chromebook_GLES.json113
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm64-Release-Android_ASAN.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-universal-devrel-Android_SKQP.json (renamed from infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-universal-devrel-Android_SKQP.json)44
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES.json110
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Coverage.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-MSAN.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SafeStack.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-ASAN.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Fast.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Mini.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-NoDEPS.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-SwiftShader.json (renamed from infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-SwiftShader.json)40
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Vulkan.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-EMCC-wasm-Release.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-arm-Release-Chromecast.json110
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-loongson3a-Release.json110
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Debug-EmbededResouces.json94
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-ANGLE.json94
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Flutter_Android.json103
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-NoGPU.json94
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Shared.json94
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-Android_Vulkan.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-iOS.json94
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json115
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-x86_64-Debug-Metal.json94
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-arm64-Release-Android.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86-Debug-Exceptions.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Debug-GDI.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Release-Vulkan.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Release.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Build-Win-MSVC-x86_64-Debug.json94
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json110
-rw-r--r--infra/bots/recipe_modules/build/examples/full.expected/Test-Ubuntu14-Clang-GCE-CPU-AVX2-x86_64-Debug-All-CT_DM_10k_SKPs.json108
-rw-r--r--infra/bots/recipe_modules/build/examples/full.py82
-rw-r--r--infra/bots/recipe_modules/build/flutter.py41
-rw-r--r--infra/bots/recipe_modules/build/util.py62
-rw-r--r--infra/bots/recipe_modules/flavor/api.py16
-rw-r--r--infra/bots/recipe_modules/flavor/default_flavor.py8
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_API26.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_ASAN.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Chromebook_GLES.json75
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm64-Release-Android_ASAN.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES.json72
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Fast.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Mini.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-NoDEPS.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Vulkan.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-EMCC-wasm-Release.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-loongson3a-Release.json72
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Debug-EmbededResouces.json56
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-ANGLE.json56
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Flutter_Android.json65
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-NoGPU.json56
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Shared.json56
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-arm64-Debug-Android_Vulkan.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-arm64-Debug-iOS.json56
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json77
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-x86_64-Debug-Metal.json56
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-arm64-Release-Android.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86-Debug-Exceptions.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86_64-Debug-GDI.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86_64-Release-Vulkan.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86_64-Release.json70
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json212
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-All-Android.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Pixel-GPU-Adreno530-arm64-Debug-All-Android.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json65
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release-All.json65
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-MSAN.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-ASAN.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Ubuntu14-Clang-GCE-CPU-AVX2-x86_64-Release-All-CT_BENCH_1k_SKPs.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android_ASAN.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus7-CPU-Tegra3-arm-Release-All-Android.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Pixel-GPU-Adreno530-arm64-Debug-All-Android.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json65
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-universal-devrel-All-Android_SKQP.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Coverage.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SafeStack.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SwiftShader.json152
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-TSAN.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-Vulkan.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-All.json49
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Mac-Clang-MacMini7.1-CPU-AVX-x86_64-Debug-All-ASAN.json49
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41.json49
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-MSVC-ShuttleA-GPU-GTX660-x86_64-Debug-All.json49
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-iOS-Clang-iPadPro-GPU-GT7800-arm64-Debug-All.json49
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/failed_infra_step.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/failed_read_version.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command_retries_exhausted.json63
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/retry_ios_install.json49
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/retry_ios_install_retries_exhausted.json49
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.py33
-rw-r--r--infra/bots/recipe_modules/flavor/flutter_flavor.py48
-rw-r--r--infra/bots/recipe_modules/flavor/gn_android_flavor.py97
-rw-r--r--infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py93
-rw-r--r--infra/bots/recipe_modules/flavor/gn_chromecast_flavor.py58
-rw-r--r--infra/bots/recipe_modules/flavor/gn_flavor.py267
-rw-r--r--infra/bots/recipe_modules/flavor/valgrind_flavor.py2
-rw-r--r--infra/bots/recipe_modules/run/api.py53
-rw-r--r--infra/bots/recipe_modules/run/examples/full.expected/test.json38
-rw-r--r--infra/bots/recipe_modules/run/examples/full.py3
121 files changed, 4590 insertions, 4947 deletions
diff --git a/infra/bots/recipe_modules/build/__init__.py b/infra/bots/recipe_modules/build/__init__.py
new file mode 100644
index 0000000000..52d18c6bd9
--- /dev/null
+++ b/infra/bots/recipe_modules/build/__init__.py
@@ -0,0 +1,21 @@
+# Copyright 2018 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.
+
+DEPS = [
+ 'depot_tools/gclient',
+ 'env',
+ 'infra',
+ 'recipe_engine/context',
+ 'recipe_engine/file',
+ 'recipe_engine/python',
+ 'recipe_engine/step',
+ 'run',
+ 'vars',
+]
+
+from recipe_engine.recipe_api import Property
+
+PROPERTIES = {
+ 'buildername': Property(default=None),
+}
diff --git a/infra/bots/recipe_modules/build/android.py b/infra/bots/recipe_modules/build/android.py
new file mode 100644
index 0000000000..82253bb947
--- /dev/null
+++ b/infra/bots/recipe_modules/build/android.py
@@ -0,0 +1,104 @@
+# Copyright 2018 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.
+
+
+import re
+
+
+def compile_fn(api, out_dir):
+ compiler = api.vars.builder_cfg.get('compiler')
+ configuration = api.vars.builder_cfg.get('configuration')
+ extra_tokens = api.vars.extra_tokens
+ os = api.vars.builder_cfg.get('os')
+ target_arch = api.vars.builder_cfg.get('target_arch')
+
+ assert compiler == 'Clang' # At this rate we might not ever support GCC.
+
+ extra_cflags = []
+ if configuration == 'Debug':
+ extra_cflags.append('-O1')
+
+ ndk_asset = 'android_ndk_linux'
+ ndk_path = ndk_asset
+ if 'Mac' in os:
+ ndk_asset = 'android_ndk_darwin'
+ ndk_path = ndk_asset
+ elif 'Win' in os:
+ ndk_asset = 'android_ndk_windows'
+ ndk_path = 'n'
+
+ quote = lambda x: '"%s"' % x
+ args = {
+ 'ndk': quote(api.vars.slave_dir.join(ndk_path)),
+ 'target_cpu': quote(target_arch),
+ }
+ extra_cflags.append('-DDUMMY_ndk_version=%s' %
+ api.run.asset_version(ndk_asset))
+
+ if configuration != 'Debug':
+ args['is_debug'] = 'false'
+ if 'Vulkan' in extra_tokens:
+ args['ndk_api'] = 24
+ args['skia_enable_vulkan_debug_layers'] = 'false'
+ if 'ASAN' in extra_tokens:
+ args['sanitize'] = '"ASAN"'
+ if target_arch == 'arm' and 'ndk_api' not in args:
+ args['ndk_api'] = 21
+
+ # If an Android API level is specified, use that.
+ for t in extra_tokens:
+ m = re.search(r'API(\d+)', t)
+ if m and len(m.groups()) == 1:
+ args['ndk_api'] = m.groups()[0]
+ break
+
+ if extra_cflags:
+ args['extra_cflags'] = repr(extra_cflags).replace("'", '"')
+
+ gn_args = ' '.join('%s=%s' % (k,v) for (k,v) in sorted(args.iteritems()))
+ gn = 'gn.exe' if 'Win' in os else 'gn'
+ ninja = 'ninja.exe' if 'Win' in os else 'ninja'
+ gn = api.vars.skia_dir.join('bin', gn)
+
+ with api.context(cwd=api.vars.skia_dir):
+ api.run(api.python, 'fetch-gn',
+ script=api.vars.skia_dir.join('bin', 'fetch-gn'),
+ infra_step=True)
+
+ # If this is the SkQP build, set up the environment and run the script
+ # to build the universal APK. This should only run the skqp branches.
+ if 'SKQP' in extra_tokens:
+ api.infra.update_go_deps()
+
+ output_binary = out_dir.join('run_testlab')
+ build_target = api.vars.skia_dir.join('infra', 'cts', 'run_testlab.go')
+ build_cmd = ['go', 'build', '-o', output_binary, build_target]
+ with api.context(env=api.infra.go_env):
+ api.run(api.step, 'build firebase runner', cmd=build_cmd)
+
+ # Build the APK.
+ ndk_asset = 'android_ndk_linux'
+ sdk_asset = 'android_sdk_linux'
+ android_ndk = api.vars.slave_dir.join(ndk_asset)
+ android_home = api.vars.slave_dir.join(sdk_asset, 'android-sdk')
+ env = {
+ 'ANDROID_NDK': android_ndk,
+ 'ANDROID_HOME': android_home,
+ 'APK_OUTPUT_DIR': out_dir,
+ }
+
+ mk_universal = api.vars.skia_dir.join('tools', 'skqp',
+ 'make_universal_apk')
+ with api.context(env=env):
+ api.run(api.step, 'make_universal', cmd=[mk_universal])
+ else:
+ api.run(api.step, 'gn gen',
+ cmd=[gn, 'gen', out_dir, '--args=' + gn_args])
+ api.run(api.step, 'ninja', cmd=[ninja, '-k', '0', '-C', out_dir])
+
+
+def copy_extra_build_products(api, src, dst):
+ if 'SKQP' in api.vars.extra_tokens:
+ wlist = api.vars.skia_dir.join('infra','cts', 'whitelist_devices.json')
+ api.file.copy('copy whitelist', wlist, dst)
diff --git a/infra/bots/recipe_modules/build/api.py b/infra/bots/recipe_modules/build/api.py
new file mode 100644
index 0000000000..545f94f288
--- /dev/null
+++ b/infra/bots/recipe_modules/build/api.py
@@ -0,0 +1,48 @@
+# Copyright 2018 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.
+
+
+"""Build Skia for various platforms."""
+
+
+from recipe_engine import recipe_api
+
+from . import android
+from . import chromebook
+from . import chromecast
+from . import default
+from . import flutter
+from . import util
+
+
+class BuildApi(recipe_api.RecipeApi):
+ def __init__(self, buildername, *args, **kwargs):
+ b = buildername
+ if 'Android' in b and not 'Flutter' in b:
+ self.compile_fn = android.compile_fn
+ self.copy_fn = android.copy_extra_build_products
+ elif 'Chromebook' in b:
+ self.compile_fn = chromebook.compile_fn
+ self.copy_fn = chromebook.copy_extra_build_products
+ elif 'Chromecast' in b:
+ self.compile_fn = chromecast.compile_fn
+ self.copy_fn = chromecast.copy_extra_build_products
+ elif 'Flutter' in b:
+ self.compile_fn = flutter.compile_fn
+ self.copy_fn = flutter.copy_extra_build_products
+ else:
+ self.compile_fn = default.compile_fn
+ self.copy_fn = default.copy_extra_build_products
+ super(BuildApi, self).__init__(*args, **kwargs)
+
+ def __call__(self):
+ """Compile the code."""
+ out_dir = self.m.vars.skia_out.join(self.m.vars.configuration)
+ self.compile_fn(self.m, out_dir)
+
+ def copy_build_products(self, dst):
+ """Copy whitelisted build products to dst."""
+ src = self.m.vars.skia_out.join(self.m.vars.configuration)
+ util.copy_whitelisted_build_products(self.m, src, dst)
+ self.copy_fn(self.m, src, dst)
diff --git a/infra/bots/recipe_modules/build/chromebook.py b/infra/bots/recipe_modules/build/chromebook.py
new file mode 100644
index 0000000000..0ab624e2bc
--- /dev/null
+++ b/infra/bots/recipe_modules/build/chromebook.py
@@ -0,0 +1,101 @@
+# Copyright 2018 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.
+
+
+def compile_fn(api, out_dir):
+ configuration = api.vars.builder_cfg.get('configuration')
+ os = api.vars.builder_cfg.get('os')
+ target_arch = api.vars.builder_cfg.get('target_arch')
+
+ clang_linux = api.vars.slave_dir.join('clang_linux')
+ # This is a pretty typical arm-linux-gnueabihf sysroot
+ sysroot_dir = api.vars.slave_dir.join('armhf_sysroot')
+
+ if 'arm' == target_arch:
+ # This is the extra things needed to link against for the chromebook.
+ # For example, the Mali GL drivers.
+ gl_dir = api.vars.slave_dir.join('chromebook_arm_gles')
+ env = {'LD_LIBRARY_PATH': sysroot_dir.join('lib')}
+ extra_asmflags = [
+ '--target=armv7a-linux-gnueabihf',
+ '--sysroot=%s' % sysroot_dir,
+ '-march=armv7-a',
+ '-mfpu=neon',
+ '-mthumb',
+ ]
+
+ extra_cflags = [
+ '--target=armv7a-linux-gnueabihf',
+ '--sysroot=%s' % sysroot_dir,
+ '-I%s' % gl_dir.join('include'),
+ '-I%s' % sysroot_dir.join('include'),
+ '-I%s' % sysroot_dir.join('include', 'c++', '4.8.4'),
+ '-I%s' % sysroot_dir.join('include', 'c++', '4.8.4',
+ 'arm-linux-gnueabihf'),
+ '-DMESA_EGL_NO_X11_HEADERS',
+ ]
+
+ extra_ldflags = [
+ '--target=armv7a-linux-gnueabihf',
+ '--sysroot=%s' % sysroot_dir,
+ # use sysroot's ld which can properly link things.
+ '-B%s' % sysroot_dir.join('bin'),
+ # helps locate crt*.o
+ '-B%s' % sysroot_dir.join('gcc-cross'),
+ # helps locate libgcc*.so
+ '-L%s' % sysroot_dir.join('gcc-cross'),
+ '-L%s' % sysroot_dir.join('lib'),
+ '-L%s' % gl_dir.join('lib'),
+ # Explicitly do not use lld for cross compiling like this - I observed
+ # failures like "Unrecognized reloc 41" and couldn't find out why.
+ ]
+ else:
+ gl_dir = api.vars.slave_dir.join('chromebook_x86_64_gles')
+ env = {}
+ extra_asmflags = []
+ extra_cflags = [
+ '-DMESA_EGL_NO_X11_HEADERS',
+ '-I%s' % gl_dir.join('include'),
+ ]
+ extra_ldflags = [
+ '-L%s' % gl_dir.join('lib'),
+ '-static-libstdc++', '-static-libgcc',
+ '-fuse-ld=lld',
+ ]
+
+ quote = lambda x: '"%s"' % x
+ args = {
+ 'cc': quote(clang_linux.join('bin','clang')),
+ 'cxx': quote(clang_linux.join('bin','clang++')),
+ 'target_cpu': quote(target_arch),
+ 'skia_use_fontconfig': 'false',
+ 'skia_use_system_freetype2': 'false',
+ 'skia_use_egl': 'true',
+ }
+ extra_cflags.append('-DDUMMY_clang_linux_version=%s' %
+ api.run.asset_version('clang_linux'))
+
+ if configuration != 'Debug':
+ args['is_debug'] = 'false'
+ args['extra_asmflags'] = repr(extra_asmflags).replace("'", '"')
+ args['extra_cflags'] = repr(extra_cflags).replace("'", '"')
+ args['extra_ldflags'] = repr(extra_ldflags).replace("'", '"')
+
+ gn_args = ' '.join('%s=%s' % (k,v) for (k,v) in sorted(args.iteritems()))
+
+ gn = 'gn.exe' if 'Win' in os else 'gn'
+ ninja = 'ninja.exe' if 'Win' in os else 'ninja'
+ gn = api.vars.skia_dir.join('bin', gn)
+
+ with api.context(cwd=api.vars.skia_dir, env=env):
+ api.run(api.python, 'fetch-gn',
+ script=api.vars.skia_dir.join('bin', 'fetch-gn'),
+ infra_step=True)
+ api.run(api.step, 'gn gen', cmd=[gn, 'gen', out_dir, '--args=' + gn_args])
+ api.run(api.step, 'ninja',
+ cmd=[ninja, '-k', '0', '-C', out_dir, 'nanobench', 'dm'])
+
+
+def copy_extra_build_products(api, src, dst):
+ pass
diff --git a/infra/bots/recipe_modules/build/chromecast.py b/infra/bots/recipe_modules/build/chromecast.py
new file mode 100644
index 0000000000..b1631aa6c0
--- /dev/null
+++ b/infra/bots/recipe_modules/build/chromecast.py
@@ -0,0 +1,70 @@
+# Copyright 2018 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.
+
+
+def compile_fn(api, out_dir):
+ configuration = api.vars.builder_cfg.get('configuration')
+ os = api.vars.builder_cfg.get('os')
+ target_arch = api.vars.builder_cfg.get('target_arch')
+
+ # TODO(kjlubick): can this toolchain be replaced/shared with chromebook?
+ toolchain_dir = api.vars.slave_dir.join('cast_toolchain', 'armv7a')
+ gles_dir = api.vars.slave_dir.join('chromebook_arm_gles')
+
+ extra_cflags = [
+ '-I%s' % gles_dir.join('include'),
+ '-DMESA_EGL_NO_X11_HEADERS',
+ "-DSK_NO_COMMAND_BUFFER",
+ # Avoid unused warning with yyunput
+ '-Wno-error=unused-function',
+ # Makes the binary small enough to fit on the small disk.
+ '-g0',
+ ('-DDUMMY_cast_toolchain_version=%s' %
+ api.run.asset_version('cast_toolchain')),
+ ]
+
+ extra_ldflags = [
+ # Chromecast does not package libstdc++
+ '-static-libstdc++', '-static-libgcc',
+ '-L%s' % toolchain_dir.join('lib'),
+ ]
+
+ quote = lambda x: '"%s"' % x
+ args = {
+ 'cc': quote(toolchain_dir.join('bin','armv7a-cros-linux-gnueabi-gcc')),
+ 'cxx': quote(toolchain_dir.join('bin','armv7a-cros-linux-gnueabi-g++')),
+ 'ar': quote(toolchain_dir.join('bin','armv7a-cros-linux-gnueabi-ar')),
+ 'target_cpu': quote(target_arch),
+ 'skia_use_fontconfig': 'false',
+ 'skia_enable_gpu': 'true',
+ # The toolchain won't allow system libraries to be used
+ # when cross-compiling
+ 'skia_use_system_freetype2': 'false',
+ # Makes the binary smaller
+ 'skia_use_icu': 'false',
+ 'skia_use_egl': 'true',
+ }
+
+ if configuration != 'Debug':
+ args['is_debug'] = 'false'
+ args['extra_cflags'] = repr(extra_cflags).replace("'", '"')
+ args['extra_ldflags'] = repr(extra_ldflags).replace("'", '"')
+
+ gn_args = ' '.join('%s=%s' % (k,v) for (k,v) in sorted(args.iteritems()))
+
+ gn = 'gn.exe' if 'Win' in os else 'gn'
+ ninja = 'ninja.exe' if 'Win' in os else 'ninja'
+ gn = api.vars.skia_dir.join('bin', gn)
+
+ with api.context(cwd=api.vars.skia_dir):
+ api.run(api.python, 'fetch-gn',
+ script=api.vars.skia_dir.join('bin', 'fetch-gn'),
+ infra_step=True)
+ api.run(api.step, 'gn gen', cmd=[gn, 'gen', out_dir, '--args=' + gn_args])
+ api.run(api.step, 'ninja',
+ cmd=[ninja, '-k', '0', '-C', out_dir, 'nanobench', 'dm'])
+
+
+def copy_extra_build_products(api, src, dst):
+ pass
diff --git a/infra/bots/recipe_modules/build/default.py b/infra/bots/recipe_modules/build/default.py
new file mode 100644
index 0000000000..e781a5e863
--- /dev/null
+++ b/infra/bots/recipe_modules/build/default.py
@@ -0,0 +1,280 @@
+# Copyright 2018 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.
+
+
+from . import util
+
+
+def build_command_buffer(api):
+ api.run(api.python, 'build command_buffer',
+ script=api.vars.skia_dir.join('tools', 'build_command_buffer.py'),
+ args=[
+ '--chrome-dir', api.vars.checkout_root,
+ '--output-dir', api.vars.skia_out.join(api.vars.configuration),
+ '--no-sync', '--no-hooks', '--make-output-dir'])
+
+
+def compile_swiftshader(api, swiftshader_root, cc, cxx, out):
+ """Build SwiftShader with CMake.
+
+ Building SwiftShader works differently from any other Skia third_party lib.
+ See discussion in skia:7671 for more detail.
+
+ Args:
+ swiftshader_root: root of the SwiftShader checkout.
+ cc, cxx: compiler binaries to use
+ out: target directory for libEGL.so and libGLESv2.so
+ """
+ cmake_bin = str(api.vars.slave_dir.join('cmake_linux', 'bin'))
+ env = {
+ 'CC': cc,
+ 'CXX': cxx,
+ 'PATH': '%%(PATH)s:%s' % cmake_bin
+ }
+ api.file.ensure_directory('makedirs swiftshader_out', out)
+ with api.context(cwd=out, env=env):
+ api.run(api.step, 'swiftshader cmake',
+ cmd=['cmake', swiftshader_root, '-GNinja'])
+ api.run(api.step, 'swiftshader ninja',
+ cmd=['ninja', '-C', out, 'libEGL.so', 'libGLESv2.so'])
+
+
+def compile_fn(api, out_dir):
+ compiler = api.vars.builder_cfg.get('compiler', '')
+ configuration = api.vars.builder_cfg.get('configuration', '')
+ extra_tokens = api.vars.extra_tokens
+ os = api.vars.builder_cfg.get('os', '')
+ target_arch = api.vars.builder_cfg.get('target_arch', '')
+
+ clang_linux = str(api.vars.slave_dir.join('clang_linux'))
+ emscripten_sdk = str(api.vars.slave_dir.join('emscripten_sdk'))
+ linux_vulkan_sdk = str(api.vars.slave_dir.join('linux_vulkan_sdk'))
+ win_toolchain = str(api.vars.slave_dir.join(
+ 't', 'depot_tools', 'win_toolchain', 'vs_files',
+ 'a9e1098bba66d2acccc377d5ee81265910f29272'))
+ win_vulkan_sdk = str(api.vars.slave_dir.join('win_vulkan_sdk'))
+
+ cc, cxx = None, None
+ extra_cflags = []
+ extra_ldflags = []
+ args = {}
+ env = {}
+
+ if compiler == 'Clang' and api.vars.is_linux:
+ cc = clang_linux + '/bin/clang'
+ cxx = clang_linux + '/bin/clang++'
+ extra_cflags .append('-B%s/bin' % clang_linux)
+ extra_ldflags.append('-B%s/bin' % clang_linux)
+ extra_ldflags.append('-fuse-ld=lld')
+ extra_cflags.append('-DDUMMY_clang_linux_version=%s' %
+ api.run.asset_version('clang_linux'))
+ if os == 'Ubuntu14':
+ extra_ldflags.extend(['-static-libstdc++', '-static-libgcc'])
+
+ elif compiler == 'Clang':
+ cc, cxx = 'clang', 'clang++'
+ elif compiler == 'GCC':
+ if target_arch in ['mips64el', 'loongson3a']:
+ mips64el_toolchain_linux = str(api.vars.slave_dir.join(
+ 'mips64el_toolchain_linux'))
+ cc = mips64el_toolchain_linux + '/bin/mips64el-linux-gnuabi64-gcc-7'
+ cxx = mips64el_toolchain_linux + '/bin/mips64el-linux-gnuabi64-g++-7'
+ env['LD_LIBRARY_PATH'] = (
+ mips64el_toolchain_linux + '/lib/x86_64-linux-gnu/')
+ extra_ldflags.append('-L' + mips64el_toolchain_linux +
+ '/mips64el-linux-gnuabi64/lib')
+ extra_cflags.extend([
+ '-Wno-format-truncation',
+ '-Wno-uninitialized',
+ ('-DDUMMY_mips64el_toolchain_linux_version=%s' %
+ api.run.asset_version('mips64el_toolchain_linux'))
+ ])
+ if configuration == 'Release':
+ # This warning is only triggered when fuzz_canvas is inlined.
+ extra_cflags.append('-Wno-strict-overflow')
+ args.update({
+ 'skia_use_system_freetype2': 'false',
+ 'skia_use_fontconfig': 'false',
+ 'skia_enable_gpu': 'false',
+ })
+ else:
+ cc, cxx = 'gcc', 'g++'
+ elif compiler == 'EMCC':
+ cc = emscripten_sdk + '/emscripten/incoming/emcc'
+ cxx = emscripten_sdk + '/emscripten/incoming/em++'
+ extra_cflags.append('-Wno-unknown-warning-option')
+ extra_cflags.append('-DDUMMY_emscripten_sdk_version=%s' %
+ api.run.asset_version('emscripten_sdk'))
+ if 'Coverage' in extra_tokens:
+ # See https://clang.llvm.org/docs/SourceBasedCodeCoverage.html for
+ # more info on using llvm to gather coverage information.
+ extra_cflags.append('-fprofile-instr-generate')
+ extra_cflags.append('-fcoverage-mapping')
+ extra_ldflags.append('-fprofile-instr-generate')
+ extra_ldflags.append('-fcoverage-mapping')
+
+ if compiler != 'MSVC' and configuration == 'Debug':
+ extra_cflags.append('-O1')
+
+ if 'Exceptions' in extra_tokens:
+ extra_cflags.append('/EHsc')
+ if 'Fast' in extra_tokens:
+ extra_cflags.extend(['-march=native', '-fomit-frame-pointer', '-O3',
+ '-ffp-contract=off'])
+
+ if len(extra_tokens) == 1 and extra_tokens[0].startswith('SK'):
+ extra_cflags.append('-D' + extra_tokens[0])
+ # If we're limiting Skia at all, drop skcms to portable code.
+ if 'SK_CPU_LIMIT' in extra_tokens[0]:
+ extra_cflags.append('-DSKCMS_PORTABLE')
+
+
+ if 'MSAN' in extra_tokens:
+ extra_ldflags.append('-L' + clang_linux + '/msan')
+
+ if configuration != 'Debug':
+ args['is_debug'] = 'false'
+ if 'ANGLE' in extra_tokens:
+ args['skia_use_angle'] = 'true'
+ if 'SwiftShader' in extra_tokens:
+ swiftshader_root = api.vars.skia_dir.join('third_party', 'externals',
+ 'swiftshader')
+ swiftshader_out = api.vars.skia_out.join('swiftshader_out')
+ compile_swiftshader(api, swiftshader_root, cc, cxx, swiftshader_out)
+ args['skia_use_egl'] = 'true'
+ extra_cflags.extend([
+ '-DGR_EGL_TRY_GLES3_THEN_GLES2',
+ # TODO(dogben): Use headers from Khronos rather than SwiftShader's
+ # copy.
+ '-I%s' % swiftshader_root.join('include'),
+ ])
+ extra_ldflags.extend([
+ '-L%s' % swiftshader_out,
+ ])
+ if 'CommandBuffer' in extra_tokens:
+ api.run.run_once(build_command_buffer, api)
+ if 'MSAN' in extra_tokens:
+ args['skia_enable_gpu'] = 'false'
+ args['skia_use_fontconfig'] = 'false'
+ if 'ASAN' in extra_tokens or 'UBSAN' in extra_tokens:
+ args['skia_enable_spirv_validation'] = 'false'
+ if 'Mini' in extra_tokens:
+ args.update({
+ 'is_component_build': 'true', # Proves we can link a coherent .so.
+ 'is_official_build': 'true', # No debug symbols, no tools.
+ 'skia_enable_effects': 'false',
+ 'skia_enable_gpu': 'true',
+ 'skia_enable_pdf': 'false',
+ 'skia_use_expat': 'false',
+ 'skia_use_libjpeg_turbo': 'false',
+ 'skia_use_libpng': 'false',
+ 'skia_use_libwebp': 'false',
+ 'skia_use_zlib': 'false',
+ })
+ if 'NoDEPS' in extra_tokens:
+ args.update({
+ 'is_official_build': 'true',
+ 'skia_enable_fontmgr_empty': 'true',
+ 'skia_enable_gpu': 'true',
+
+ 'skia_enable_effects': 'false',
+ 'skia_enable_pdf': 'false',
+ 'skia_use_expat': 'false',
+ 'skia_use_freetype': 'false',
+ 'skia_use_libjpeg_turbo': 'false',
+ 'skia_use_libpng': 'false',
+ 'skia_use_libwebp': 'false',
+ 'skia_use_vulkan': 'false',
+ 'skia_use_zlib': 'false',
+ })
+ if 'NoGPU' in extra_tokens:
+ args['skia_enable_gpu'] = 'false'
+ if 'EmbededResouces' in extra_tokens:
+ args['skia_embed_resoucres'] = 'true'
+ if 'Shared' in extra_tokens:
+ args['is_component_build'] = 'true'
+ if 'Vulkan' in extra_tokens and not 'Android' in extra_tokens:
+ args['skia_enable_vulkan_debug_layers'] = 'false'
+ if api.vars.is_linux:
+ args['skia_vulkan_sdk'] = '"%s"' % linux_vulkan_sdk
+ if 'Win' in os:
+ args['skia_vulkan_sdk'] = '"%s"' % win_vulkan_sdk
+ if 'Metal' in extra_tokens:
+ args['skia_use_metal'] = 'true'
+ if 'iOS' in extra_tokens:
+ # Bots use Chromium signing cert.
+ args['skia_ios_identity'] = '".*GS9WA.*"'
+ args['skia_ios_profile'] = '"Upstream Testing Provisioning Profile"'
+ if 'CheckGeneratedFiles' in extra_tokens:
+ args['skia_compile_processors'] = 'true'
+ args['skia_generate_workarounds'] = 'true'
+ if compiler == 'Clang' and 'Win' in os:
+ args['clang_win'] = '"%s"' % api.vars.slave_dir.join('clang_win')
+ extra_cflags.append('-DDUMMY_clang_win_version=%s' %
+ api.run.asset_version('clang_win'))
+ if target_arch == 'wasm':
+ args.update({
+ 'skia_use_freetype': 'false',
+ 'skia_use_fontconfig': 'false',
+ 'skia_use_dng_sdk': 'false',
+ 'skia_use_icu': 'false',
+ 'skia_enable_gpu': 'false',
+ })
+
+ sanitize = ''
+ for t in extra_tokens:
+ if t.endswith('SAN'):
+ sanitize = t
+ if 'SafeStack' in extra_tokens:
+ assert sanitize == ''
+ sanitize = 'safe-stack'
+
+ for (k,v) in {
+ 'cc': cc,
+ 'cxx': cxx,
+ 'sanitize': sanitize,
+ 'target_cpu': target_arch,
+ 'target_os': 'ios' if 'iOS' in extra_tokens else '',
+ 'win_sdk': win_toolchain + '/win_sdk' if 'Win' in os else '',
+ 'win_vc': win_toolchain + '/VC' if 'Win' in os else '',
+ }.iteritems():
+ if v:
+ args[k] = '"%s"' % v
+ if extra_cflags:
+ args['extra_cflags'] = repr(extra_cflags).replace("'", '"')
+ if extra_ldflags:
+ args['extra_ldflags'] = repr(extra_ldflags).replace("'", '"')
+
+ gn_args = ' '.join('%s=%s' % (k,v) for (k,v) in sorted(args.iteritems()))
+
+ gn = 'gn.exe' if 'Win' in os else 'gn'
+ ninja = 'ninja.exe' if 'Win' in os else 'ninja'
+ gn = api.vars.skia_dir.join('bin', gn)
+
+ with api.context(cwd=api.vars.skia_dir):
+ api.run(api.python,
+ 'fetch-gn',
+ script=api.vars.skia_dir.join('bin', 'fetch-gn'),
+ infra_step=True)
+ if 'CheckGeneratedFiles' in extra_tokens:
+ env['PATH'] = '%s:%%(PATH)s' % api.vars.skia_dir.join('bin')
+ api.run(api.python,
+ 'fetch-clang-format',
+ script=api.vars.skia_dir.join('bin', 'fetch-clang-format'),
+ infra_step=True)
+ if target_arch == 'wasm':
+ fastcomp = emscripten_sdk + '/clang/fastcomp/build_incoming_64/bin'
+ env['PATH'] = '%s:%%(PATH)s' % fastcomp
+
+ with api.env(env):
+ api.run(api.step, 'gn gen',
+ cmd=[gn, 'gen', out_dir, '--args=' + gn_args])
+ api.run(api.step, 'ninja', cmd=[ninja, '-k', '0', '-C', out_dir])
+
+
+def copy_extra_build_products(api, src, dst):
+ if 'SwiftShader' in api.vars.extra_tokens:
+ util.copy_whitelisted_build_products(api,
+ api.vars.skia_out.join('swiftshader_out'),
+ api.vars.swarming_out_dir.join('out', 'swiftshader_out'))
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_API26.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_API26.json
new file mode 100644
index 0000000000..b57ee7b377
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_API26.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/android_ndk_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get android_ndk_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_API26"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_API26/Release",
+ "--args=extra_cflags=[\"-DDUMMY_ndk_version=42\"] is_debug=false ndk=\"[START_DIR]/android_ndk_linux\" ndk_api=26 target_cpu=\"arm\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_API26"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_API26/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_API26"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_API26/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_ASAN.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_ASAN.json
new file mode 100644
index 0000000000..8d614be543
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_ASAN.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/android_ndk_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get android_ndk_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_ASAN"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_ASAN/Release",
+ "--args=extra_cflags=[\"-DDUMMY_ndk_version=42\"] is_debug=false ndk=\"[START_DIR]/android_ndk_linux\" ndk_api=21 sanitize=\"ASAN\" target_cpu=\"arm\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_ASAN"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_ASAN/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_ASAN"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_ASAN/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm-Release-Chromebook_GLES.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm-Release-Chromebook_GLES.json
new file mode 100644
index 0000000000..b8711d0aa8
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm-Release-Chromebook_GLES.json
@@ -0,0 +1,113 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES/Release",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_asmflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-march=armv7-a\", \"-mfpu=neon\", \"-mthumb\"] extra_cflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-I[START_DIR]/chromebook_arm_gles/include\", \"-I[START_DIR]/armhf_sysroot/include\", \"-I[START_DIR]/armhf_sysroot/include/c++/4.8.4\", \"-I[START_DIR]/armhf_sysroot/include/c++/4.8.4/arm-linux-gnueabihf\", \"-DMESA_EGL_NO_X11_HEADERS\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-B[START_DIR]/armhf_sysroot/bin\", \"-B[START_DIR]/armhf_sysroot/gcc-cross\", \"-L[START_DIR]/armhf_sysroot/gcc-cross\", \"-L[START_DIR]/armhf_sysroot/lib\", \"-L[START_DIR]/chromebook_arm_gles/lib\"] is_debug=false skia_use_egl=true skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"arm\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES/Release",
+ "nanobench",
+ "dm"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm64-Release-Android_ASAN.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm64-Release-Android_ASAN.json
new file mode 100644
index 0000000000..273f4beab3
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-arm64-Release-Android_ASAN.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/android_ndk_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get android_ndk_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_ASAN"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_ASAN/Release",
+ "--args=extra_cflags=[\"-DDUMMY_ndk_version=42\"] is_debug=false ndk=\"[START_DIR]/android_ndk_linux\" sanitize=\"ASAN\" target_cpu=\"arm64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_ASAN"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_ASAN/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_ASAN"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_ASAN/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-universal-devrel-Android_SKQP.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-universal-devrel-Android_SKQP.json
index 30d12b2a50..b3d023ce5d 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-universal-devrel-Android_SKQP.json
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-universal-devrel-Android_SKQP.json
@@ -34,6 +34,7 @@
"[START_DIR]/go/go/bin/go",
"version"
],
+ "cwd": "[START_DIR]/cache/work/skia",
"env": {
"BUILDTYPE": "devrel",
"CHROME_HEADLESS": "1",
@@ -49,6 +50,7 @@
"go",
"version"
],
+ "cwd": "[START_DIR]/cache/work/skia",
"env": {
"BUILDTYPE": "devrel",
"CHROME_HEADLESS": "1",
@@ -67,6 +69,7 @@
"-t",
"go.skia.org/infra/..."
],
+ "cwd": "[START_DIR]/cache/work/skia",
"env": {
"BUILDTYPE": "devrel",
"CHROME_HEADLESS": "1",
@@ -85,6 +88,7 @@
"[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-universal-devrel-Android_SKQP/devrel/run_testlab",
"[START_DIR]/cache/work/skia/infra/cts/run_testlab.go"
],
+ "cwd": "[START_DIR]/cache/work/skia",
"env": {
"BUILDTYPE": "devrel",
"CHROME_HEADLESS": "1",
@@ -115,12 +119,50 @@
"cmd": [
"python",
"-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-universal-devrel-Android_SKQP/devrel",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/devrel"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
"copy",
"[START_DIR]/cache/work/skia/infra/cts/whitelist_devices.json",
- "[START_DIR]/[SWARM_OUT_DIR]"
+ "[START_DIR]/[SWARM_OUT_DIR]/out/devrel"
],
"infra_step": true,
"name": "copy whitelist"
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES.json
new file mode 100644
index 0000000000..ed37e82d3a
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES.json
@@ -0,0 +1,110 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES/Debug",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_asmflags=[] extra_cflags=[\"-DMESA_EGL_NO_X11_HEADERS\", \"-I[START_DIR]/chromebook_x86_64_gles/include\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-L[START_DIR]/chromebook_x86_64_gles/lib\", \"-static-libstdc++\", \"-static-libgcc\", \"-fuse-ld=lld\"] skia_use_egl=true skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES/Debug",
+ "nanobench",
+ "dm"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Coverage.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Coverage.json
new file mode 100644
index 0000000000..124b3f5963
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Coverage.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Coverage"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Coverage/Debug",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-fprofile-instr-generate\", \"-fcoverage-mapping\", \"-O1\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-fprofile-instr-generate\", \"-fcoverage-mapping\"] target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Coverage"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Coverage/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Coverage"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Coverage/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-MSAN.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-MSAN.json
new file mode 100644
index 0000000000..984a7b7c09
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-MSAN.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-MSAN"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-MSAN/Debug",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-O1\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-L[START_DIR]/clang_linux/msan\"] sanitize=\"MSAN\" skia_enable_gpu=false skia_use_fontconfig=false target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-MSAN"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-MSAN/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-MSAN"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-MSAN/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json
new file mode 100644
index 0000000000..075eeb8f45
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41/Debug",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-O1\", \"-DSK_CPU_LIMIT_SSE41\", \"-DSKCMS_PORTABLE\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE.json
new file mode 100644
index 0000000000..8bee355500
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE/Debug",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-O1\", \"-DSK_USE_DISCARDABLE_SCALEDIMAGECACHE\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SafeStack.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SafeStack.json
new file mode 100644
index 0000000000..ffd7d00c54
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SafeStack.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SafeStack"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SafeStack/Debug",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-O1\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] sanitize=\"safe-stack\" target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SafeStack"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SafeStack/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SafeStack"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SafeStack/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-ASAN.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-ASAN.json
new file mode 100644
index 0000000000..85c9264793
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-ASAN.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-ASAN"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-ASAN/Release",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] is_debug=false sanitize=\"ASAN\" skia_enable_spirv_validation=false target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-ASAN"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-ASAN/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-ASAN"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-ASAN/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Fast.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Fast.json
new file mode 100644
index 0000000000..9b13eca9ed
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Fast.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Fast"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Fast/Release",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-march=native\", \"-fomit-frame-pointer\", \"-O3\", \"-ffp-contract=off\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] is_debug=false target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Fast"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Fast/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Fast"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Fast/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Mini.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Mini.json
new file mode 100644
index 0000000000..0616d24dcd
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Mini.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Mini"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Mini/Release",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] is_component_build=true is_debug=false is_official_build=true skia_enable_effects=false skia_enable_gpu=true skia_enable_pdf=false skia_use_expat=false skia_use_libjpeg_turbo=false skia_use_libpng=false skia_use_libwebp=false skia_use_zlib=false target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Mini"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Mini/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Mini"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Mini/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-NoDEPS.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-NoDEPS.json
new file mode 100644
index 0000000000..09b3b02a3e
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-NoDEPS.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/skia/out/Build-Debian9-Clang-x86_64-Release-NoDEPS"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/skia/bin/gn",
+ "gen",
+ "[START_DIR]/skia/out/Build-Debian9-Clang-x86_64-Release-NoDEPS/Release",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] is_debug=false is_official_build=true skia_enable_effects=false skia_enable_fontmgr_empty=true skia_enable_gpu=true skia_enable_pdf=false skia_use_expat=false skia_use_freetype=false skia_use_libjpeg_turbo=false skia_use_libpng=false skia_use_libwebp=false skia_use_vulkan=false skia_use_zlib=false target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/skia/out/Build-Debian9-Clang-x86_64-Release-NoDEPS"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/skia/out/Build-Debian9-Clang-x86_64-Release-NoDEPS/Release"
+ ],
+ "cwd": "[START_DIR]/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/skia/out/Build-Debian9-Clang-x86_64-Release-NoDEPS"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/skia/out/Build-Debian9-Clang-x86_64-Release-NoDEPS/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-SwiftShader.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-SwiftShader.json
index 70ae6b8122..98ebab4727 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-SwiftShader.json
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-SwiftShader.json
@@ -118,11 +118,49 @@
"python",
"-u",
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-SwiftShader/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
"[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-SwiftShader/swiftshader_out",
"[START_DIR]/[SWARM_OUT_DIR]/out/swiftshader_out"
],
"infra_step": true,
- "name": "copy build products",
+ "name": "copy build products (2)",
"~followup_annotations": [
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Vulkan.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Vulkan.json
new file mode 100644
index 0000000000..4cefd3f307
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Vulkan.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Vulkan"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Vulkan/Release",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] is_debug=false skia_enable_vulkan_debug_layers=false skia_vulkan_sdk=\"[START_DIR]/linux_vulkan_sdk\" target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Vulkan"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Vulkan/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Vulkan"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Vulkan/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-EMCC-wasm-Release.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-EMCC-wasm-Release.json
new file mode 100644
index 0000000000..f3371b7a20
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-EMCC-wasm-Release.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/emscripten_sdk/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get emscripten_sdk VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-EMCC-wasm-Release"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-EMCC-wasm-Release/Release",
+ "--args=cc=\"[START_DIR]/emscripten_sdk/emscripten/incoming/emcc\" cxx=\"[START_DIR]/emscripten_sdk/emscripten/incoming/em++\" extra_cflags=[\"-Wno-unknown-warning-option\", \"-DDUMMY_emscripten_sdk_version=42\"] is_debug=false skia_enable_gpu=false skia_use_dng_sdk=false skia_use_fontconfig=false skia_use_freetype=false skia_use_icu=false target_cpu=\"wasm\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "[START_DIR]/emscripten_sdk/clang/fastcomp/build_incoming_64/bin:<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-EMCC-wasm-Release"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-EMCC-wasm-Release/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "[START_DIR]/emscripten_sdk/clang/fastcomp/build_incoming_64/bin:<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-EMCC-wasm-Release"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-EMCC-wasm-Release/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-arm-Release-Chromecast.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-arm-Release-Chromecast.json
new file mode 100644
index 0000000000..1c39637828
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-arm-Release-Chromecast.json
@@ -0,0 +1,110 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/cast_toolchain/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get cast_toolchain VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-arm-Release-Chromecast"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-arm-Release-Chromecast/Release",
+ "--args=ar=\"[START_DIR]/cast_toolchain/armv7a/bin/armv7a-cros-linux-gnueabi-ar\" cc=\"[START_DIR]/cast_toolchain/armv7a/bin/armv7a-cros-linux-gnueabi-gcc\" cxx=\"[START_DIR]/cast_toolchain/armv7a/bin/armv7a-cros-linux-gnueabi-g++\" extra_cflags=[\"-I[START_DIR]/chromebook_arm_gles/include\", \"-DMESA_EGL_NO_X11_HEADERS\", \"-DSK_NO_COMMAND_BUFFER\", \"-Wno-error=unused-function\", \"-g0\", \"-DDUMMY_cast_toolchain_version=42\"] extra_ldflags=[\"-static-libstdc++\", \"-static-libgcc\", \"-L[START_DIR]/cast_toolchain/armv7a/lib\"] is_debug=false skia_enable_gpu=true skia_use_egl=true skia_use_fontconfig=false skia_use_icu=false skia_use_system_freetype2=false target_cpu=\"arm\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-arm-Release-Chromecast"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-arm-Release-Chromecast/Release",
+ "nanobench",
+ "dm"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-arm-Release-Chromecast"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-arm-Release-Chromecast/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-loongson3a-Release.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-loongson3a-Release.json
new file mode 100644
index 0000000000..209e616629
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-loongson3a-Release.json
@@ -0,0 +1,110 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/mips64el_toolchain_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get mips64el_toolchain_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-loongson3a-Release"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-loongson3a-Release/Release",
+ "--args=cc=\"[START_DIR]/mips64el_toolchain_linux/bin/mips64el-linux-gnuabi64-gcc-7\" cxx=\"[START_DIR]/mips64el_toolchain_linux/bin/mips64el-linux-gnuabi64-g++-7\" extra_cflags=[\"-Wno-format-truncation\", \"-Wno-uninitialized\", \"-DDUMMY_mips64el_toolchain_linux_version=42\", \"-Wno-strict-overflow\"] extra_ldflags=[\"-L[START_DIR]/mips64el_toolchain_linux/mips64el-linux-gnuabi64/lib\"] is_debug=false skia_enable_gpu=false skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"loongson3a\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "LD_LIBRARY_PATH": "[START_DIR]/mips64el_toolchain_linux/lib/x86_64-linux-gnu/",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-loongson3a-Release"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-loongson3a-Release/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "LD_LIBRARY_PATH": "[START_DIR]/mips64el_toolchain_linux/lib/x86_64-linux-gnu/",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-loongson3a-Release"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-loongson3a-Release/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Debug-EmbededResouces.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Debug-EmbededResouces.json
new file mode 100644
index 0000000000..dab6383eb9
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Debug-EmbededResouces.json
@@ -0,0 +1,94 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Debug-EmbededResouces"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Debug-EmbededResouces/Debug",
+ "--args=cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-O1\"] skia_embed_resoucres=true target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Debug-EmbededResouces"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Debug-EmbededResouces/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Debug-EmbededResouces"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Debug-EmbededResouces/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-ANGLE.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-ANGLE.json
new file mode 100644
index 0000000000..a38e234371
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-ANGLE.json
@@ -0,0 +1,94 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-ANGLE"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-ANGLE/Release",
+ "--args=cc=\"gcc\" cxx=\"g++\" is_debug=false skia_use_angle=true target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-ANGLE"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-ANGLE/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-ANGLE"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-ANGLE/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Flutter_Android.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Flutter_Android.json
new file mode 100644
index 0000000000..dacf8bdedc
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Flutter_Android.json
@@ -0,0 +1,103 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_PACKAGE_REPO[depot_tools]/gclient.py",
+ "runhooks"
+ ],
+ "cwd": "[START_DIR]/cache/work/flutter/src",
+ "env": {
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
+ },
+ "name": "gclient runhooks"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[START_DIR]/cache/work/flutter/src/out/android_release"
+ ],
+ "cwd": "[START_DIR]/cache/work/flutter/src",
+ "infra_step": true,
+ "name": "rmtree android_release"
+ },
+ {
+ "cmd": [
+ "flutter/tools/gn",
+ "--runtime-mode=release",
+ "--android"
+ ],
+ "cwd": "[START_DIR]/cache/work/flutter/src",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/flutter/src/third_party/skia/out/Build-Debian9-GCC-x86_64-Release-Flutter_Android"
+ },
+ "name": "gn_gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-C",
+ "out/android_release",
+ "-j100"
+ ],
+ "cwd": "[START_DIR]/cache/work/flutter/src",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/flutter/src/third_party/skia/out/Build-Debian9-GCC-x86_64-Release-Flutter_Android"
+ },
+ "name": "build_flutter"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/flutter/src/third_party/skia/out/Build-Debian9-GCC-x86_64-Release-Flutter_Android/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-NoGPU.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-NoGPU.json
new file mode 100644
index 0000000000..3b673fde7b
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-NoGPU.json
@@ -0,0 +1,94 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-NoGPU"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-NoGPU/Release",
+ "--args=cc=\"gcc\" cxx=\"g++\" is_debug=false skia_enable_gpu=false target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-NoGPU"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-NoGPU/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-NoGPU"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-NoGPU/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Shared.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Shared.json
new file mode 100644
index 0000000000..519c0a8da1
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Shared.json
@@ -0,0 +1,94 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-Shared"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-Shared/Release",
+ "--args=cc=\"gcc\" cxx=\"g++\" is_component_build=true is_debug=false target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-Shared"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-Shared/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-Shared"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-Shared/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-Android_Vulkan.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-Android_Vulkan.json
new file mode 100644
index 0000000000..824ead6189
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-Android_Vulkan.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/android_ndk_darwin/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get android_ndk_darwin VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Android_Vulkan"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Android_Vulkan/Debug",
+ "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_darwin\" ndk_api=24 skia_enable_vulkan_debug_layers=false target_cpu=\"arm64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Android_Vulkan"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Android_Vulkan/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Android_Vulkan"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Android_Vulkan/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-iOS.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-iOS.json
new file mode 100644
index 0000000000..a37e449ded
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-arm64-Debug-iOS.json
@@ -0,0 +1,94 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-iOS"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-iOS/Debug",
+ "--args=cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"-O1\"] skia_ios_identity=\".*GS9WA.*\" skia_ios_profile=\"Upstream Testing Provisioning Profile\" target_cpu=\"arm64\" target_os=\"ios\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-iOS"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-iOS/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-iOS"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-iOS/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json
new file mode 100644
index 0000000000..e3d89bcd3e
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json
@@ -0,0 +1,115 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/tools/build_command_buffer.py",
+ "--chrome-dir",
+ "[START_DIR]/cache/work",
+ "--output-dir",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug",
+ "--no-sync",
+ "--no-hooks",
+ "--make-output-dir"
+ ],
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer"
+ },
+ "name": "build command_buffer"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug",
+ "--args=cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"-O1\"] target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-x86_64-Debug-Metal.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-x86_64-Debug-Metal.json
new file mode 100644
index 0000000000..86443fd445
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Mac-Clang-x86_64-Debug-Metal.json
@@ -0,0 +1,94 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-Metal"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-Metal/Debug",
+ "--args=cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"-O1\"] skia_use_metal=true target_cpu=\"x86_64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-Metal"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-Metal/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-Metal"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-Metal/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-arm64-Release-Android.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-arm64-Release-Android.json
new file mode 100644
index 0000000000..c23e0a35ae
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-arm64-Release-Android.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/android_ndk_windows/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get android_ndk_windows VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-arm64-Release-Android"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn.exe",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-arm64-Release-Android/Release",
+ "--args=extra_cflags=[\"-DDUMMY_ndk_version=42\"] is_debug=false ndk=\"[START_DIR]/n\" target_cpu=\"arm64\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-arm64-Release-Android"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja.exe",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-arm64-Release-Android/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-arm64-Release-Android"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-arm64-Release-Android/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86-Debug-Exceptions.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86-Debug-Exceptions.json
new file mode 100644
index 0000000000..5d080e4f35
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86-Debug-Exceptions.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_win/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_win VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86-Debug-Exceptions"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn.exe",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86-Debug-Exceptions/Debug",
+ "--args=cc=\"clang\" clang_win=\"[START_DIR]/clang_win\" cxx=\"clang++\" extra_cflags=[\"-O1\", \"/EHsc\", \"-DDUMMY_clang_win_version=42\"] target_cpu=\"x86\" win_sdk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/win_sdk\" win_vc=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/VC\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86-Debug-Exceptions"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja.exe",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86-Debug-Exceptions/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86-Debug-Exceptions"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86-Debug-Exceptions/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Debug-GDI.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Debug-GDI.json
new file mode 100644
index 0000000000..d2c158de37
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Debug-GDI.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_win/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_win VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug_x64",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Debug-GDI"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn.exe",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Debug-GDI/Debug_x64",
+ "--args=cc=\"clang\" clang_win=\"[START_DIR]/clang_win\" cxx=\"clang++\" extra_cflags=[\"-O1\", \"-DDUMMY_clang_win_version=42\"] target_cpu=\"x86_64\" win_sdk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/win_sdk\" win_vc=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/VC\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug_x64",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Debug-GDI"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja.exe",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Debug-GDI/Debug_x64"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug_x64",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Debug-GDI"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Debug-GDI/Debug_x64",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug_x64"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Release-Vulkan.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Release-Vulkan.json
new file mode 100644
index 0000000000..dc9b8cd8ee
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Release-Vulkan.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_win/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_win VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release_x64",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release-Vulkan"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn.exe",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release-Vulkan/Release_x64",
+ "--args=cc=\"clang\" clang_win=\"[START_DIR]/clang_win\" cxx=\"clang++\" extra_cflags=[\"-DDUMMY_clang_win_version=42\"] is_debug=false skia_enable_vulkan_debug_layers=false skia_vulkan_sdk=\"[START_DIR]/win_vulkan_sdk\" target_cpu=\"x86_64\" win_sdk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/win_sdk\" win_vc=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/VC\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release_x64",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release-Vulkan"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja.exe",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release-Vulkan/Release_x64"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release_x64",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release-Vulkan"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release-Vulkan/Release_x64",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release_x64"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Release.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Release.json
new file mode 100644
index 0000000000..977d964044
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Release.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_win/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_win VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release_x64",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn.exe",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release/Release_x64",
+ "--args=cc=\"clang\" clang_win=\"[START_DIR]/clang_win\" cxx=\"clang++\" extra_cflags=[\"-DDUMMY_clang_win_version=42\"] is_debug=false target_cpu=\"x86_64\" win_sdk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/win_sdk\" win_vc=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/VC\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release_x64",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja.exe",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release/Release_x64"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release_x64",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release/Release_x64",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release_x64"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-MSVC-x86_64-Debug.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-MSVC-x86_64-Debug.json
new file mode 100644
index 0000000000..e2fb634dc0
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-MSVC-x86_64-Debug.json
@@ -0,0 +1,94 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug_x64",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-MSVC-x86_64-Debug"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn.exe",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Win-MSVC-x86_64-Debug/Debug_x64",
+ "--args=target_cpu=\"x86_64\" win_sdk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/win_sdk\" win_vc=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/VC\""
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug_x64",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-MSVC-x86_64-Debug"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja.exe",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Win-MSVC-x86_64-Debug/Debug_x64"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug_x64",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-MSVC-x86_64-Debug"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Win-MSVC-x86_64-Debug/Debug_x64",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug_x64"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json b/infra/bots/recipe_modules/build/examples/full.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json
new file mode 100644
index 0000000000..c901ba3242
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json
@@ -0,0 +1,110 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/build/out"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-clang-format"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/build/out"
+ },
+ "infra_step": true,
+ "name": "fetch-clang-format"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/build/out/Release",
+ "--args=is_debug=false skia_compile_processors=true skia_generate_workarounds=true"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "[START_DIR]/cache/work/skia/bin:<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/build/out"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/build/out/Release"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "PATH": "[START_DIR]/cache/work/skia/bin:<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/build/out"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/build/out/Release",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Release"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Test-Ubuntu14-Clang-GCE-CPU-AVX2-x86_64-Debug-All-CT_DM_10k_SKPs.json b/infra/bots/recipe_modules/build/examples/full.expected/Test-Ubuntu14-Clang-GCE-CPU-AVX2-x86_64-Debug-All-CT_DM_10k_SKPs.json
new file mode 100644
index 0000000000..5f175ed4b2
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Test-Ubuntu14-Clang-GCE-CPU-AVX2-x86_64-Debug-All-CT_DM_10k_SKPs.json
@@ -0,0 +1,108 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/build/out"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/build/out/Debug",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-O1\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-static-libstdc++\", \"-static-libgcc\"]"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/build/out"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-k",
+ "0",
+ "-C",
+ "[START_DIR]/build/out/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[START_DIR]/build/out"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/build/out/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.py b/infra/bots/recipe_modules/build/examples/full.py
new file mode 100644
index 0000000000..3a2a09c394
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.py
@@ -0,0 +1,82 @@
+# Copyright 2017 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.
+
+
+DEPS = [
+ 'build',
+ 'recipe_engine/properties',
+ 'recipe_engine/raw_io',
+ 'run',
+ 'vars',
+]
+
+
+def RunSteps(api):
+ api.vars.setup()
+
+ api.build()
+ api.build.copy_build_products(
+ api.vars.swarming_out_dir.join(
+ 'out', api.vars.configuration))
+ api.run.check_failure()
+
+
+TEST_BUILDERS = [
+ 'Build-Debian9-Clang-arm-Release-Android_API26',
+ 'Build-Debian9-Clang-arm-Release-Android_ASAN',
+ 'Build-Debian9-Clang-arm-Release-Chromebook_GLES',
+ 'Build-Debian9-Clang-arm64-Release-Android_ASAN',
+ 'Build-Debian9-Clang-universal-devrel-Android_SKQP',
+ 'Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES',
+ 'Build-Debian9-Clang-x86_64-Debug-Coverage',
+ 'Build-Debian9-Clang-x86_64-Debug-MSAN',
+ 'Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41',
+ 'Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE',
+ 'Build-Debian9-Clang-x86_64-Debug-SafeStack',
+ 'Build-Debian9-Clang-x86_64-Release-ASAN',
+ 'Build-Debian9-Clang-x86_64-Release-Fast',
+ 'Build-Debian9-Clang-x86_64-Release-Mini',
+ 'Build-Debian9-Clang-x86_64-Release-NoDEPS',
+ 'Build-Debian9-Clang-x86_64-Release-SwiftShader',
+ 'Build-Debian9-Clang-x86_64-Release-Vulkan',
+ 'Build-Debian9-EMCC-wasm-Release',
+ 'Build-Debian9-GCC-arm-Release-Chromecast',
+ 'Build-Debian9-GCC-loongson3a-Release',
+ 'Build-Debian9-GCC-x86_64-Debug-EmbededResouces',
+ 'Build-Debian9-GCC-x86_64-Release-ANGLE',
+ 'Build-Debian9-GCC-x86_64-Release-Flutter_Android',
+ 'Build-Debian9-GCC-x86_64-Release-NoGPU',
+ 'Build-Debian9-GCC-x86_64-Release-Shared',
+ 'Build-Mac-Clang-arm64-Debug-Android_Vulkan',
+ 'Build-Mac-Clang-arm64-Debug-iOS',
+ 'Build-Mac-Clang-x86_64-Debug-CommandBuffer',
+ 'Build-Mac-Clang-x86_64-Debug-Metal',
+ 'Build-Win-Clang-arm64-Release-Android',
+ 'Build-Win-Clang-x86-Debug-Exceptions',
+ 'Build-Win-Clang-x86_64-Debug-GDI',
+ 'Build-Win-Clang-x86_64-Release',
+ 'Build-Win-Clang-x86_64-Release-Vulkan',
+ 'Build-Win-MSVC-x86_64-Debug',
+ 'Housekeeper-PerCommit-CheckGeneratedFiles',
+ 'Test-Ubuntu14-Clang-GCE-CPU-AVX2-x86_64-Debug-All-CT_DM_10k_SKPs'
+]
+
+# Default properties used for TEST_BUILDERS.
+defaultProps = lambda buildername: dict(
+ buildername=buildername,
+ repository='https://skia.googlesource.com/skia.git',
+ revision='abc123',
+ path_config='kitchen',
+ patch_set=2,
+ swarm_out_dir='[SWARM_OUT_DIR]'
+)
+
+def GenTests(api):
+ for buildername in TEST_BUILDERS:
+ test = (
+ api.test(buildername) +
+ api.properties(**defaultProps(buildername))
+ )
+ yield test
+
diff --git a/infra/bots/recipe_modules/build/flutter.py b/infra/bots/recipe_modules/build/flutter.py
new file mode 100644
index 0000000000..13403cd203
--- /dev/null
+++ b/infra/bots/recipe_modules/build/flutter.py
@@ -0,0 +1,41 @@
+# Copyright 2018 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.
+
+
+def compile_fn(api, _):
+ flutter_dir = api.vars.checkout_root.join('src')
+ configuration = api.vars.builder_cfg.get('configuration').lower()
+ extra_tokens = api.vars.extra_tokens
+ out_dir = configuration
+
+ with api.context(cwd=flutter_dir):
+ # Runhook to generate the gn binary in buildtools.
+ api.gclient.runhooks()
+
+ # Setup GN args.
+ gn_args = [
+ '--runtime-mode=%s' % configuration,
+ ]
+ if 'Android' in extra_tokens:
+ gn_args.append('--android')
+ out_dir = 'android_' + out_dir
+
+ # Delete out_dir so that we start from a clean slate. See skbug/6310.
+ api.run.rmtree(flutter_dir.join('out', out_dir))
+
+ # Run GN.
+ api.run(
+ api.step,
+ 'gn_gen',
+ cmd=['flutter/tools/gn'] + gn_args)
+
+ # Build Flutter.
+ api.run(
+ api.step,
+ 'build_flutter',
+ cmd=['ninja', '-C', 'out/' + out_dir, '-j100'])
+
+
+def copy_extra_build_products(api, src, dst):
+ pass
diff --git a/infra/bots/recipe_modules/build/util.py b/infra/bots/recipe_modules/build/util.py
new file mode 100644
index 0000000000..4f9cfd6f73
--- /dev/null
+++ b/infra/bots/recipe_modules/build/util.py
@@ -0,0 +1,62 @@
+# Copyright 2018 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.
+
+
+"""Shared utilities for the build recipe module."""
+
+
+BUILD_PRODUCTS_ISOLATE_WHITELIST = [
+ 'bookmaker',
+ 'dm',
+ 'dm.exe',
+ 'dm.app',
+ 'nanobench.app',
+ 'get_images_from_skps',
+ 'get_images_from_skps.exe',
+ 'nanobench',
+ 'nanobench.exe',
+ 'skpbench',
+ '*.so',
+ '*.dll',
+ '*.dylib',
+ 'skia_launcher',
+ 'skiaserve',
+ 'lib/*.so',
+ 'run_testlab',
+ 'skqp-universal-debug.apk',
+ 'whitelist_devices.json',
+]
+
+
+def copy_whitelisted_build_products(api, src, dst):
+ """Copy whitelisted build products from src to dst."""
+ api.python.inline(
+ name='copy build products',
+ program='''import errno
+import glob
+import os
+import shutil
+import sys
+
+src = sys.argv[1]
+dst = sys.argv[2]
+build_products_whitelist = %s
+
+try:
+ os.makedirs(dst)
+except OSError as e:
+ if e.errno != errno.EEXIST:
+ raise
+
+for pattern in build_products_whitelist:
+ path = os.path.join(src, pattern)
+ for f in glob.glob(path):
+ dst_path = os.path.join(dst, os.path.relpath(f, src))
+ if not os.path.isdir(os.path.dirname(dst_path)):
+ os.makedirs(os.path.dirname(dst_path))
+ print 'Copying build product %%s to %%s' %% (f, dst_path)
+ shutil.move(f, dst_path)
+''' % str(BUILD_PRODUCTS_ISOLATE_WHITELIST),
+ args=[src, dst],
+ infra_step=True)
diff --git a/infra/bots/recipe_modules/flavor/api.py b/infra/bots/recipe_modules/flavor/api.py
index 70d16d54bb..f432066e9a 100644
--- a/infra/bots/recipe_modules/flavor/api.py
+++ b/infra/bots/recipe_modules/flavor/api.py
@@ -9,7 +9,6 @@
from recipe_engine import recipe_api
from . import default_flavor
-from . import flutter_flavor
from . import gn_android_flavor
from . import gn_chromebook_flavor
from . import gn_chromecast_flavor
@@ -35,9 +34,6 @@ def is_chromebook(vars_api):
return ('Chromebook' in vars_api.extra_tokens or
'ChromeOS' in vars_api.builder_cfg.get('os', ''))
-def is_flutter(vars_api):
- return 'Flutter' in vars_api.extra_tokens
-
def is_ios(vars_api):
return ('iOS' in vars_api.extra_tokens or
'iOS' == vars_api.builder_cfg.get('os', ''))
@@ -53,8 +49,6 @@ def is_valgrind(vars_api):
class SkiaFlavorApi(recipe_api.RecipeApi):
def get_flavor(self, vars_api):
"""Return a flavor utils object specific to the given builder."""
- if is_flutter(vars_api):
- return flutter_flavor.FlutterFlavorUtils(self)
if is_chromecast(vars_api):
return gn_chromecast_flavor.GNChromecastFlavorUtils(self)
if is_chromebook(vars_api):
@@ -74,16 +68,6 @@ class SkiaFlavorApi(recipe_api.RecipeApi):
def step(self, name, cmd, **kwargs):
return self._f.step(name, cmd, **kwargs)
- def compile(self, target):
- return self._f.compile(target)
-
- def copy_extra_build_products(self, swarming_out_dir):
- return self._f.copy_extra_build_products(swarming_out_dir)
-
- @property
- def out_dir(self):
- return self._f.out_dir
-
def device_path_join(self, *args):
return self._f.device_path_join(*args)
diff --git a/infra/bots/recipe_modules/flavor/default_flavor.py b/infra/bots/recipe_modules/flavor/default_flavor.py
index 0d565e607e..7ce61775ac 100644
--- a/infra/bots/recipe_modules/flavor/default_flavor.py
+++ b/infra/bots/recipe_modules/flavor/default_flavor.py
@@ -91,14 +91,6 @@ class DefaultFlavorUtils(object):
if not self.m.path.exists(win_toolchain_asset_path):
self._win_toolchain_dir = self.m.vars.slave_dir
- def copy_extra_build_products(self, swarming_out_dir):
- pass
-
- @property
- def out_dir(self):
- """Flavor-specific out directory."""
- return self.m.vars.skia_out.join(self.m.vars.configuration)
-
def device_path_join(self, *args):
"""Like os.path.join(), but for paths on a connected device."""
return self.m.path.join(*args)
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_API26.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_API26.json
deleted file mode 100644
index a69acebd09..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_API26.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_API26"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_API26/Release",
- "--args=extra_cflags=[\"-DDUMMY_ndk_version=42\"] is_debug=false ndk=\"[START_DIR]/android_ndk_linux\" ndk_api=26 target_cpu=\"arm\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_API26"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_API26/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_API26"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_ASAN.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_ASAN.json
deleted file mode 100644
index 05ce497a28..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Android_ASAN.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_ASAN"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_ASAN/Release",
- "--args=extra_cflags=[\"-DDUMMY_ndk_version=42\"] is_debug=false ndk=\"[START_DIR]/android_ndk_linux\" ndk_api=21 sanitize=\"ASAN\" target_cpu=\"arm\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_ASAN"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_ASAN/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Android_ASAN"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Chromebook_GLES.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Chromebook_GLES.json
deleted file mode 100644
index 10a00fc0af..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Chromebook_GLES.json
+++ /dev/null
@@ -1,75 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES/Release",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_asmflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-march=armv7-a\", \"-mfpu=neon\", \"-mthumb\"] extra_cflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-I[START_DIR]/chromebook_arm_gles/include\", \"-I[START_DIR]/armhf_sysroot/include\", \"-I[START_DIR]/armhf_sysroot/include/c++/4.8.4\", \"-I[START_DIR]/armhf_sysroot/include/c++/4.8.4/arm-linux-gnueabihf\", \"-DMESA_EGL_NO_X11_HEADERS\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-B[START_DIR]/armhf_sysroot/bin\", \"-B[START_DIR]/armhf_sysroot/gcc-cross\", \"-L[START_DIR]/armhf_sysroot/gcc-cross\", \"-L[START_DIR]/armhf_sysroot/lib\", \"-L[START_DIR]/chromebook_arm_gles/lib\"] is_debug=false skia_use_egl=true skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"arm\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES/Release",
- "nanobench",
- "dm"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm64-Release-Android_ASAN.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm64-Release-Android_ASAN.json
deleted file mode 100644
index 646dd1bee0..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm64-Release-Android_ASAN.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_ASAN"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_ASAN/Release",
- "--args=extra_cflags=[\"-DDUMMY_ndk_version=42\"] is_debug=false ndk=\"[START_DIR]/android_ndk_linux\" sanitize=\"ASAN\" target_cpu=\"arm64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_ASAN"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_ASAN/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_ASAN"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES.json
deleted file mode 100644
index a078e34384..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES.json
+++ /dev/null
@@ -1,72 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES/Debug",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_asmflags=[] extra_cflags=[\"-DMESA_EGL_NO_X11_HEADERS\", \"-I[START_DIR]/chromebook_x86_64_gles/include\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-L[START_DIR]/chromebook_x86_64_gles/lib\", \"-static-libstdc++\", \"-static-libgcc\", \"-fuse-ld=lld\"] skia_use_egl=true skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES/Debug",
- "nanobench",
- "dm"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json
deleted file mode 100644
index bdb433f2de..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41/Debug",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-O1\", \"-DSK_CPU_LIMIT_SSE41\", \"-DSKCMS_PORTABLE\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41/Debug"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE.json
deleted file mode 100644
index fd55e9c8fe..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE/Debug",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-O1\", \"-DSK_USE_DISCARDABLE_SCALEDIMAGECACHE\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE/Debug"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Fast.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Fast.json
deleted file mode 100644
index 787491ef69..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Fast.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Fast"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Fast/Release",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-march=native\", \"-fomit-frame-pointer\", \"-O3\", \"-ffp-contract=off\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] is_debug=false target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Fast"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Fast/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Fast"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Mini.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Mini.json
deleted file mode 100644
index 6000c10ee0..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Mini.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Mini"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Mini/Release",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] is_component_build=true is_debug=false is_official_build=true skia_enable_effects=false skia_enable_gpu=true skia_enable_pdf=false skia_use_expat=false skia_use_libjpeg_turbo=false skia_use_libpng=false skia_use_libwebp=false skia_use_zlib=false target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Mini"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Mini/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Mini"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-NoDEPS.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-NoDEPS.json
deleted file mode 100644
index 813cd52c49..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-NoDEPS.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/skia/out/Build-Debian9-Clang-x86_64-Release-NoDEPS"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/skia/out/Build-Debian9-Clang-x86_64-Release-NoDEPS/Release",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] is_debug=false is_official_build=true skia_enable_effects=false skia_enable_fontmgr_empty=true skia_enable_gpu=true skia_enable_pdf=false skia_use_expat=false skia_use_freetype=false skia_use_libjpeg_turbo=false skia_use_libpng=false skia_use_libwebp=false skia_use_vulkan=false skia_use_zlib=false target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/skia/out/Build-Debian9-Clang-x86_64-Release-NoDEPS"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/skia/out/Build-Debian9-Clang-x86_64-Release-NoDEPS/Release"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/skia/out/Build-Debian9-Clang-x86_64-Release-NoDEPS"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Vulkan.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Vulkan.json
deleted file mode 100644
index 6a24e90bc4..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Release-Vulkan.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Vulkan"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Vulkan/Release",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] is_debug=false skia_enable_vulkan_debug_layers=false skia_vulkan_sdk=\"[START_DIR]/linux_vulkan_sdk\" target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Vulkan"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Vulkan/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86_64-Release-Vulkan"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-EMCC-wasm-Release.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-EMCC-wasm-Release.json
deleted file mode 100644
index 863f7ea7b1..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-EMCC-wasm-Release.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/emscripten_sdk/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get emscripten_sdk VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-EMCC-wasm-Release"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-EMCC-wasm-Release/Release",
- "--args=cc=\"[START_DIR]/emscripten_sdk/emscripten/incoming/emcc\" cxx=\"[START_DIR]/emscripten_sdk/emscripten/incoming/em++\" extra_cflags=[\"-Wno-unknown-warning-option\", \"-DDUMMY_emscripten_sdk_version=42\"] is_debug=false skia_enable_gpu=false skia_use_dng_sdk=false skia_use_fontconfig=false skia_use_freetype=false skia_use_icu=false target_cpu=\"wasm\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "[START_DIR]/emscripten_sdk/clang/fastcomp/build_incoming_64/bin:<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-EMCC-wasm-Release"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-EMCC-wasm-Release/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "[START_DIR]/emscripten_sdk/clang/fastcomp/build_incoming_64/bin:<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-EMCC-wasm-Release"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-loongson3a-Release.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-loongson3a-Release.json
deleted file mode 100644
index e6b90c0cfd..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-loongson3a-Release.json
+++ /dev/null
@@ -1,72 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/mips64el_toolchain_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get mips64el_toolchain_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-loongson3a-Release"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-loongson3a-Release/Release",
- "--args=cc=\"[START_DIR]/mips64el_toolchain_linux/bin/mips64el-linux-gnuabi64-gcc-7\" cxx=\"[START_DIR]/mips64el_toolchain_linux/bin/mips64el-linux-gnuabi64-g++-7\" extra_cflags=[\"-Wno-format-truncation\", \"-Wno-uninitialized\", \"-DDUMMY_mips64el_toolchain_linux_version=42\", \"-Wno-strict-overflow\"] extra_ldflags=[\"-L[START_DIR]/mips64el_toolchain_linux/mips64el-linux-gnuabi64/lib\"] is_debug=false skia_enable_gpu=false skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"loongson3a\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "LD_LIBRARY_PATH": "[START_DIR]/mips64el_toolchain_linux/lib/x86_64-linux-gnu/",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-loongson3a-Release"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-loongson3a-Release/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "LD_LIBRARY_PATH": "[START_DIR]/mips64el_toolchain_linux/lib/x86_64-linux-gnu/",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-loongson3a-Release"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Debug-EmbededResouces.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Debug-EmbededResouces.json
deleted file mode 100644
index 5d5fa6ba0e..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Debug-EmbededResouces.json
+++ /dev/null
@@ -1,56 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Debug-EmbededResouces"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Debug-EmbededResouces/Debug",
- "--args=cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-O1\"] skia_embed_resoucres=true target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Debug-EmbededResouces"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Debug-EmbededResouces/Debug"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Debug-EmbededResouces"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-ANGLE.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-ANGLE.json
deleted file mode 100644
index 77a47b269f..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-ANGLE.json
+++ /dev/null
@@ -1,56 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-ANGLE"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-ANGLE/Release",
- "--args=cc=\"gcc\" cxx=\"g++\" is_debug=false skia_use_angle=true target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-ANGLE"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-ANGLE/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-ANGLE"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Flutter_Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Flutter_Android.json
deleted file mode 100644
index 13401a8ac8..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Flutter_Android.json
+++ /dev/null
@@ -1,65 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_PACKAGE_REPO[depot_tools]/gclient.py",
- "runhooks"
- ],
- "cwd": "[START_DIR]/cache/work/flutter/src",
- "env": {
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
- },
- "name": "gclient runhooks"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "rmtree",
- "[START_DIR]/cache/work/flutter/src/out/android_release"
- ],
- "cwd": "[START_DIR]/cache/work/flutter/src",
- "infra_step": true,
- "name": "rmtree android_release"
- },
- {
- "cmd": [
- "flutter/tools/gn",
- "--runtime-mode=release",
- "--android"
- ],
- "cwd": "[START_DIR]/cache/work/flutter/src",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/flutter/src/third_party/skia/out/Build-Debian9-GCC-x86_64-Release-Flutter_Android"
- },
- "name": "gn_gen"
- },
- {
- "cmd": [
- "ninja",
- "-C",
- "out/android_release",
- "-j100"
- ],
- "cwd": "[START_DIR]/cache/work/flutter/src",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/flutter/src/third_party/skia/out/Build-Debian9-GCC-x86_64-Release-Flutter_Android"
- },
- "name": "build_flutter"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-NoGPU.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-NoGPU.json
deleted file mode 100644
index 6188af0c8b..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-NoGPU.json
+++ /dev/null
@@ -1,56 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-NoGPU"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-NoGPU/Release",
- "--args=cc=\"gcc\" cxx=\"g++\" is_debug=false skia_enable_gpu=false target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-NoGPU"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-NoGPU/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-NoGPU"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Shared.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Shared.json
deleted file mode 100644
index add87e5cef..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-GCC-x86_64-Release-Shared.json
+++ /dev/null
@@ -1,56 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-Shared"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-Shared/Release",
- "--args=cc=\"gcc\" cxx=\"g++\" is_component_build=true is_debug=false target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-Shared"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-Shared/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Debian9-GCC-x86_64-Release-Shared"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-arm64-Debug-Android_Vulkan.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-arm64-Debug-Android_Vulkan.json
deleted file mode 100644
index c7b06d6c25..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-arm64-Debug-Android_Vulkan.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/android_ndk_darwin/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_darwin VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Android_Vulkan"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Android_Vulkan/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_darwin\" ndk_api=24 skia_enable_vulkan_debug_layers=false target_cpu=\"arm64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Android_Vulkan"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Android_Vulkan/Debug"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Android_Vulkan"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-arm64-Debug-iOS.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-arm64-Debug-iOS.json
deleted file mode 100644
index 30d564fa23..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-arm64-Debug-iOS.json
+++ /dev/null
@@ -1,56 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-iOS"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-iOS/Debug",
- "--args=cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"-O1\"] skia_ios_identity=\".*GS9WA.*\" skia_ios_profile=\"Upstream Testing Provisioning Profile\" target_cpu=\"arm64\" target_os=\"ios\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-iOS"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-iOS/Debug"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-iOS"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json
deleted file mode 100644
index 8c7a6faa76..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json
+++ /dev/null
@@ -1,77 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/tools/build_command_buffer.py",
- "--chrome-dir",
- "[START_DIR]/cache/work",
- "--output-dir",
- "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug",
- "--no-sync",
- "--no-hooks",
- "--make-output-dir"
- ],
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer"
- },
- "name": "build command_buffer"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug",
- "--args=cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"-O1\"] target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-x86_64-Debug-Metal.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-x86_64-Debug-Metal.json
deleted file mode 100644
index 783221a11e..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Mac-Clang-x86_64-Debug-Metal.json
+++ /dev/null
@@ -1,56 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-Metal"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-Metal/Debug",
- "--args=cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"-O1\"] skia_use_metal=true target_cpu=\"x86_64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-Metal"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-Metal/Debug"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-Metal"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-arm64-Release-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-arm64-Release-Android.json
deleted file mode 100644
index 383ad76335..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-arm64-Release-Android.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/android_ndk_windows/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_windows VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-arm64-Release-Android"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn.exe",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Win-Clang-arm64-Release-Android/Release",
- "--args=extra_cflags=[\"-DDUMMY_ndk_version=42\"] is_debug=false ndk=\"[START_DIR]/n\" target_cpu=\"arm64\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-arm64-Release-Android"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja.exe",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Win-Clang-arm64-Release-Android/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-arm64-Release-Android"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86-Debug-Exceptions.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86-Debug-Exceptions.json
deleted file mode 100644
index 307d949e6c..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86-Debug-Exceptions.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_win/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_win VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86-Debug-Exceptions"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn.exe",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86-Debug-Exceptions/Debug",
- "--args=cc=\"clang\" clang_win=\"[START_DIR]/clang_win\" cxx=\"clang++\" extra_cflags=[\"-O1\", \"/EHsc\", \"-DDUMMY_clang_win_version=42\"] target_cpu=\"x86\" win_sdk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/win_sdk\" win_vc=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/VC\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86-Debug-Exceptions"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja.exe",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86-Debug-Exceptions/Debug"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86-Debug-Exceptions"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86_64-Debug-GDI.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86_64-Debug-GDI.json
deleted file mode 100644
index ab166a7201..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86_64-Debug-GDI.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_win/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_win VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Debug-GDI"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn.exe",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Debug-GDI/Debug_x64",
- "--args=cc=\"clang\" clang_win=\"[START_DIR]/clang_win\" cxx=\"clang++\" extra_cflags=[\"-O1\", \"-DDUMMY_clang_win_version=42\"] target_cpu=\"x86_64\" win_sdk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/win_sdk\" win_vc=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/VC\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Debug-GDI"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja.exe",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Debug-GDI/Debug_x64"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Debug_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Debug-GDI"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86_64-Release-Vulkan.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86_64-Release-Vulkan.json
deleted file mode 100644
index fd151d72de..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86_64-Release-Vulkan.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_win/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_win VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release-Vulkan"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn.exe",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release-Vulkan/Release_x64",
- "--args=cc=\"clang\" clang_win=\"[START_DIR]/clang_win\" cxx=\"clang++\" extra_cflags=[\"-DDUMMY_clang_win_version=42\"] is_debug=false skia_enable_vulkan_debug_layers=false skia_vulkan_sdk=\"[START_DIR]/win_vulkan_sdk\" target_cpu=\"x86_64\" win_sdk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/win_sdk\" win_vc=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/VC\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release-Vulkan"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja.exe",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release-Vulkan/Release_x64"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release-Vulkan"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86_64-Release.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86_64-Release.json
deleted file mode 100644
index 2e5d55d5b2..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Win-Clang-x86_64-Release.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_win/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_win VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn.exe",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release/Release_x64",
- "--args=cc=\"clang\" clang_win=\"[START_DIR]/clang_win\" cxx=\"clang++\" extra_cflags=[\"-DDUMMY_clang_win_version=42\"] is_debug=false target_cpu=\"x86_64\" win_sdk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/win_sdk\" win_vc=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/VC\""
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja.exe",
- "-k",
- "0",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release/Release_x64"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/cache/work/skia/out/Build-Win-Clang-x86_64-Release"
- },
- "name": "ninja"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json
deleted file mode 100644
index a6975b514e..0000000000
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json
+++ /dev/null
@@ -1,212 +0,0 @@
-[
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-clang-format"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-clang-format"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=is_debug=false skia_compile_processors=true skia_generate_workarounds=true"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "[START_DIR]/cache/work/skia/bin:<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "[START_DIR]/cache/work/skia/bin:<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "rmtree",
- "results_dir"
- ],
- "infra_step": true,
- "name": "rmtree results_dir"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "ensure-directory",
- "--mode",
- "0777",
- "results_dir"
- ],
- "infra_step": true,
- "name": "makedirs results_dir"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "rmtree",
- "device_results_dir"
- ],
- "infra_step": true,
- "name": "rmtree device_results_dir"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "ensure-directory",
- "--mode",
- "0777",
- "device_results_dir"
- ],
- "infra_step": true,
- "name": "makedirs device_results_dir"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/skp/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get skp VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "42",
- "[START_DIR]/tmp/SKP_VERSION"
- ],
- "infra_step": true,
- "name": "write SKP_VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/skimage/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get skimage VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "42",
- "[START_DIR]/tmp/SK_IMAGE_VERSION"
- ],
- "infra_step": true,
- "name": "write SK_IMAGE_VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/svg/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get svg VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "42",
- "[START_DIR]/tmp/SVG_VERSION"
- ],
- "infra_step": true,
- "name": "write SVG_VERSION"
- },
- {
- "name": "$result",
- "recipe_result": null,
- "status_code": 0
- }
-] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json
index 794cdfda44..d9b811877e 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/usr/bin/adb.1.0.35",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json
index 2e69c6fcdb..84cbc94065 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/opt/infra-android/tools/adb",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-All-Android.json
index 284f79e890..85ad5b8caf 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-All-Android.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-All-Android.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/usr/bin/adb.1.0.35",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Pixel-GPU-Adreno530-arm64-Debug-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Pixel-GPU-Adreno530-arm64-Debug-All-Android.json
index bf1d4bb539..a3791dbd82 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Pixel-GPU-Adreno530-arm64-Debug-All-Android.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Pixel-GPU-Adreno530-arm64-Debug-All-Android.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/usr/bin/adb.1.0.35",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json
index a79b2c4a43..bb83c7fc78 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json
@@ -3,71 +3,6 @@
"cmd": [
"python",
"-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_asmflags=[] extra_cflags=[\"-DMESA_EGL_NO_X11_HEADERS\", \"-I[START_DIR]/chromebook_x86_64_gles/include\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-L[START_DIR]/chromebook_x86_64_gles/lib\", \"-static-libstdc++\", \"-static-libgcc\", \"-fuse-ld=lld\"] is_debug=false skia_use_egl=true skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release",
- "nanobench",
- "dm"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
"\nimport os\nSSH_MACHINE_FILE = os.path.expanduser('~/ssh_machine.json')\nwith open(SSH_MACHINE_FILE, 'r') as f:\n print f.read()\n"
],
"env": {
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release-All.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release-All.json
index a179566f59..b07208c344 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release-All.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release-All.json
@@ -3,71 +3,6 @@
"cmd": [
"python",
"-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/cast_toolchain/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get cast_toolchain VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=ar=\"[START_DIR]/cast_toolchain/armv7a/bin/armv7a-cros-linux-gnueabi-ar\" cc=\"[START_DIR]/cast_toolchain/armv7a/bin/armv7a-cros-linux-gnueabi-gcc\" cxx=\"[START_DIR]/cast_toolchain/armv7a/bin/armv7a-cros-linux-gnueabi-g++\" extra_cflags=[\"-I[START_DIR]/chromebook_arm_gles/include\", \"-DMESA_EGL_NO_X11_HEADERS\", \"-DSK_NO_COMMAND_BUFFER\", \"-Wno-error=unused-function\", \"-g0\", \"-DDUMMY_cast_toolchain_version=42\"] extra_ldflags=[\"-static-libstdc++\", \"-static-libgcc\", \"-L[START_DIR]/cast_toolchain/armv7a/lib\"] is_debug=false skia_enable_gpu=true skia_use_egl=true skia_use_fontconfig=false skia_use_icu=false skia_use_system_freetype2=false target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release",
- "nanobench",
- "dm"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
"\nimport os\nCHROMECAST_IP_FILE = os.path.expanduser('~/chromecast.txt')\nwith open(CHROMECAST_IP_FILE, 'r') as f:\n print f.read()\n"
],
"env": {
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-MSAN.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-MSAN.json
index ee76a0c657..dbf10b83a9 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-MSAN.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-MSAN.json
@@ -6,69 +6,6 @@
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-O1\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-L[START_DIR]/clang_linux/msan\"] sanitize=\"MSAN\" skia_enable_gpu=false skia_use_fontconfig=false"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
"rmtree",
"results_dir"
],
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-ASAN.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-ASAN.json
index 92fe33bf2c..867b6d7d57 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-ASAN.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-ASAN.json
@@ -6,69 +6,6 @@
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] is_debug=false sanitize=\"ASAN\" skia_enable_spirv_validation=false"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
"rmtree",
"results_dir"
],
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Ubuntu14-Clang-GCE-CPU-AVX2-x86_64-Release-All-CT_BENCH_1k_SKPs.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Ubuntu14-Clang-GCE-CPU-AVX2-x86_64-Release-All-CT_BENCH_1k_SKPs.json
index 87c71d95f5..9c6f43b08b 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Ubuntu14-Clang-GCE-CPU-AVX2-x86_64-Release-All-CT_BENCH_1k_SKPs.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Ubuntu14-Clang-GCE-CPU-AVX2-x86_64-Release-All-CT_BENCH_1k_SKPs.json
@@ -6,69 +6,6 @@
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-static-libstdc++\", \"-static-libgcc\"] is_debug=false"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
"rmtree",
"results_dir"
],
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android.json
index bdc23572a9..316f110157 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=extra_cflags=[\"-DDUMMY_ndk_version=42\"] is_debug=false ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/usr/bin/adb.1.0.35",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json
index 81ae36b2dd..f389315911 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/usr/bin/adb.1.0.35",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json
index c572958644..9028e05d1b 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/opt/infra-android/tools/adb",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android_ASAN.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android_ASAN.json
index 32b907d7f6..8029c7ec3f 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android_ASAN.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android_ASAN.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=extra_cflags=[\"-DDUMMY_ndk_version=42\"] is_debug=false ndk=\"[START_DIR]/android_ndk_linux\" sanitize=\"ASAN\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/opt/infra-android/tools/adb",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus7-CPU-Tegra3-arm-Release-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus7-CPU-Tegra3-arm-Release-All-Android.json
index dc3375c907..56e6c8bc0d 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus7-CPU-Tegra3-arm-Release-All-Android.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus7-CPU-Tegra3-arm-Release-All-Android.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=extra_cflags=[\"-DDUMMY_ndk_version=42\"] is_debug=false ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/usr/bin/adb.1.0.35",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Pixel-GPU-Adreno530-arm64-Debug-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Pixel-GPU-Adreno530-arm64-Debug-All-Android.json
index f15b776531..b1360b7b8e 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Pixel-GPU-Adreno530-arm64-Debug-All-Android.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Pixel-GPU-Adreno530-arm64-Debug-All-Android.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/usr/bin/adb.1.0.35",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json
index 7fe39c92e7..e18737e7cd 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json
@@ -3,71 +3,6 @@
"cmd": [
"python",
"-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_asmflags=[] extra_cflags=[\"-DMESA_EGL_NO_X11_HEADERS\", \"-I[START_DIR]/chromebook_x86_64_gles/include\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-L[START_DIR]/chromebook_x86_64_gles/lib\", \"-static-libstdc++\", \"-static-libgcc\", \"-fuse-ld=lld\"] is_debug=false skia_use_egl=true skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release",
- "nanobench",
- "dm"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
"\nimport os\nSSH_MACHINE_FILE = os.path.expanduser('~/ssh_machine.json')\nwith open(SSH_MACHINE_FILE, 'r') as f:\n print f.read()\n"
],
"env": {
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-universal-devrel-All-Android_SKQP.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-universal-devrel-All-Android_SKQP.json
index c47abceaac..3ed5ecf38d 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-universal-devrel-All-Android_SKQP.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-universal-devrel-All-Android_SKQP.json
@@ -6,69 +6,6 @@
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "devrel",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/devrel",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] is_debug=false"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "devrel",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/devrel"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "devrel",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
"rmtree",
"results_dir"
],
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Coverage.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Coverage.json
index 605c9adfa5..f6cfadf8ed 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Coverage.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Coverage.json
@@ -6,69 +6,6 @@
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-fprofile-instr-generate\", \"-fcoverage-mapping\", \"-O1\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-fprofile-instr-generate\", \"-fcoverage-mapping\"]"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
"rmtree",
"results_dir"
],
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SafeStack.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SafeStack.json
index e99d998a86..ce3e0b3fa4 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SafeStack.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SafeStack.json
@@ -6,69 +6,6 @@
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-O1\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] sanitize=\"safe-stack\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
"rmtree",
"results_dir"
],
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SwiftShader.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SwiftShader.json
index e5c15d7b11..1fab714692 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SwiftShader.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SwiftShader.json
@@ -6,158 +6,6 @@
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "ensure-directory",
- "--mode",
- "0777",
- "[START_DIR]/build/out/swiftshader_out"
- ],
- "infra_step": true,
- "name": "makedirs swiftshader_out"
- },
- {
- "cmd": [
- "cmake",
- "[START_DIR]/skia/third_party/externals/swiftshader",
- "-GNinja"
- ],
- "cwd": "[START_DIR]/build/out/swiftshader_out",
- "env": {
- "BUILDTYPE": "Debug",
- "CC": "[START_DIR]/clang_linux/bin/clang",
- "CHROME_HEADLESS": "1",
- "CXX": "[START_DIR]/clang_linux/bin/clang++",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]:[START_DIR]/cmake_linux/bin",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "swiftshader cmake"
- },
- {
- "cmd": [
- "ninja",
- "-C",
- "[START_DIR]/build/out/swiftshader_out",
- "libEGL.so",
- "libGLESv2.so"
- ],
- "cwd": "[START_DIR]/build/out/swiftshader_out",
- "env": {
- "BUILDTYPE": "Debug",
- "CC": "[START_DIR]/clang_linux/bin/clang",
- "CHROME_HEADLESS": "1",
- "CXX": "[START_DIR]/clang_linux/bin/clang++",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]:[START_DIR]/cmake_linux/bin",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "swiftshader ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-O1\", \"-DGR_EGL_TRY_GLES3_THEN_GLES2\", \"-I[START_DIR]/skia/third_party/externals/swiftshader/include\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-L[START_DIR]/build/out/swiftshader_out\"] skia_use_egl=true"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
- "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
- "[START_DIR]/build/out/swiftshader_out",
- "[START_DIR]/[SWARM_OUT_DIR]/out/swiftshader_out"
- ],
- "infra_step": true,
- "name": "copy build products",
- "~followup_annotations": [
- "@@@STEP_LOG_LINE@python.inline@import errno@@@",
- "@@@STEP_LOG_LINE@python.inline@import glob@@@",
- "@@@STEP_LOG_LINE@python.inline@import os@@@",
- "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
- "@@@STEP_LOG_LINE@python.inline@import sys@@@",
- "@@@STEP_LOG_LINE@python.inline@@@@",
- "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
- "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
- "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
- "@@@STEP_LOG_LINE@python.inline@@@@",
- "@@@STEP_LOG_LINE@python.inline@try:@@@",
- "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
- "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
- "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
- "@@@STEP_LOG_LINE@python.inline@ raise@@@",
- "@@@STEP_LOG_LINE@python.inline@@@@",
- "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
- "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
- "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
- "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
- "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
- "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
- "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
- "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
- "@@@STEP_LOG_END@python.inline@@@"
- ]
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
"rmtree",
"results_dir"
],
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-TSAN.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-TSAN.json
index d282b81bac..256d7e597f 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-TSAN.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-TSAN.json
@@ -6,69 +6,6 @@
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] is_debug=false sanitize=\"TSAN\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
"rmtree",
"results_dir"
],
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-Vulkan.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-Vulkan.json
index bdda013289..565ff0fd15 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-Vulkan.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-Vulkan.json
@@ -6,69 +6,6 @@
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-O1\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] skia_enable_vulkan_debug_layers=false skia_vulkan_sdk=\"[START_DIR]/linux_vulkan_sdk\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
"rmtree",
"results_dir"
],
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-All.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-All.json
index 10c32bee0e..77accbe4ed 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-All.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-All.json
@@ -3,55 +3,6 @@
"cmd": [
"python",
"-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=cc=\"gcc\" cxx=\"g++\" is_debug=false"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Mac-Clang-MacMini7.1-CPU-AVX-x86_64-Debug-All-ASAN.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Mac-Clang-MacMini7.1-CPU-AVX-x86_64-Debug-All-ASAN.json
index 7060e1938e..59063acf70 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Mac-Clang-MacMini7.1-CPU-AVX-x86_64-Debug-All-ASAN.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Mac-Clang-MacMini7.1-CPU-AVX-x86_64-Debug-All-ASAN.json
@@ -3,55 +3,6 @@
"cmd": [
"python",
"-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"-O1\"] sanitize=\"ASAN\" skia_enable_spirv_validation=false"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41.json
index d29156e398..e896d39089 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41.json
@@ -3,55 +3,6 @@
"cmd": [
"python",
"-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=cc=\"gcc\" cxx=\"g++\" is_debug=false"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump.json
index f4f3c96cf0..c9c922071a 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump.json
@@ -6,69 +6,6 @@
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/clang_win/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_win VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn.exe",
- "gen",
- "[START_DIR]/build/out/Release_x64",
- "--args=cc=\"clang\" clang_win=\"[START_DIR]/clang_win\" cxx=\"clang++\" extra_cflags=[\"-DDUMMY_clang_win_version=42\"] is_debug=false skia_enable_vulkan_debug_layers=false skia_vulkan_sdk=\"[START_DIR]/win_vulkan_sdk\" win_sdk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/win_sdk\" win_vc=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/VC\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja.exe",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release_x64"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
"rmtree",
"results_dir"
],
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-MSVC-ShuttleA-GPU-GTX660-x86_64-Debug-All.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-MSVC-ShuttleA-GPU-GTX660-x86_64-Debug-All.json
index 8266c565b6..04afb3c4a0 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-MSVC-ShuttleA-GPU-GTX660-x86_64-Debug-All.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-MSVC-ShuttleA-GPU-GTX660-x86_64-Debug-All.json
@@ -3,55 +3,6 @@
"cmd": [
"python",
"-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn.exe",
- "gen",
- "[START_DIR]/build/out/Debug_x64",
- "--args=win_sdk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/win_sdk\" win_vc=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/a9e1098bba66d2acccc377d5ee81265910f29272/VC\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja.exe",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug_x64"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug_x64",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "python",
- "-u",
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-iOS-Clang-iPadPro-GPU-GT7800-arm64-Debug-All.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-iOS-Clang-iPadPro-GPU-GT7800-arm64-Debug-All.json
index 80d565749e..a8666c2b3f 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-iOS-Clang-iPadPro-GPU-GT7800-arm64-Debug-All.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-iOS-Clang-iPadPro-GPU-GT7800-arm64-Debug-All.json
@@ -1,55 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"-O1\"]"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
"file.txt",
"file.txt"
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed.json b/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed.json
index 977b0a5c8d..b8f2d88ff7 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/usr/bin/adb.1.0.35",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/failed_infra_step.json b/infra/bots/recipe_modules/flavor/examples/full.expected/failed_infra_step.json
index 33b64872a6..993c487a5b 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/failed_infra_step.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/failed_infra_step.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/usr/bin/adb.1.0.35",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/failed_read_version.json b/infra/bots/recipe_modules/flavor/examples/full.expected/failed_read_version.json
index f3aa01dafd..e1512570ee 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/failed_read_version.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/failed_read_version.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/usr/bin/adb.1.0.35",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json
index ecf9897057..783b8ac6ae 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/usr/bin/adb.1.0.35",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command_retries_exhausted.json b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command_retries_exhausted.json
index c9f7e84efa..393c3a33c1 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command_retries_exhausted.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command_retries_exhausted.json
@@ -1,69 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/skia/infra/bots/assets/android_ndk_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get android_ndk_linux VERSION"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Debug",
- "--args=extra_cflags=[\"-O1\", \"-DDUMMY_ndk_version=42\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Debug"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Debug",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"/usr/bin/adb.1.0.35",
"push",
"file.txt",
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_ios_install.json b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_ios_install.json
index 1fb3f7d57f..443b715932 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_ios_install.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_ios_install.json
@@ -1,55 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=cc=\"clang\" cxx=\"clang++\" is_debug=false"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
"file.txt",
"file.txt"
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_ios_install_retries_exhausted.json b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_ios_install_retries_exhausted.json
index a439b7fdf5..175933b650 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_ios_install_retries_exhausted.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_ios_install_retries_exhausted.json
@@ -1,55 +1,6 @@
[
{
"cmd": [
- "python",
- "-u",
- "[START_DIR]/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/skia/bin/gn",
- "gen",
- "[START_DIR]/build/out/Release",
- "--args=cc=\"clang\" cxx=\"clang++\" is_debug=false"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-k",
- "0",
- "-C",
- "[START_DIR]/build/out/Release"
- ],
- "cwd": "[START_DIR]/skia",
- "env": {
- "BUILDTYPE": "Release",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
- "SKIA_OUT": "[START_DIR]/build/out"
- },
- "name": "ninja"
- },
- {
- "cmd": [
"[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
"file.txt",
"file.txt"
diff --git a/infra/bots/recipe_modules/flavor/examples/full.py b/infra/bots/recipe_modules/flavor/examples/full.py
index 59e3223d14..5d30a4f29b 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.py
+++ b/infra/bots/recipe_modules/flavor/examples/full.py
@@ -34,9 +34,6 @@ def RunSteps(api):
if api.properties.get('is_testing_exceptions') == 'True':
return test_exceptions(api)
- api.flavor.compile('dm')
- api.flavor.copy_extra_build_products(api.vars.swarming_out_dir)
- assert str(api.flavor.out_dir) != ''
if 'Build' not in api.properties['buildername']:
try:
api.flavor.copy_file_to_device('file.txt', 'file.txt')
@@ -57,36 +54,6 @@ def RunSteps(api):
TEST_BUILDERS = [
- 'Build-Debian9-Clang-arm-Release-Android_API26',
- 'Build-Debian9-Clang-arm-Release-Chromebook_GLES',
- 'Build-Debian9-Clang-arm-Release-Android_ASAN',
- 'Build-Debian9-Clang-arm64-Release-Android_ASAN',
- 'Build-Debian9-Clang-universal-devrel-Android_SKQP',
- 'Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES',
- 'Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE',
- 'Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41',
- 'Build-Debian9-Clang-x86_64-Release-Fast',
- 'Build-Debian9-Clang-x86_64-Release-Mini',
- 'Build-Debian9-Clang-x86_64-Release-NoDEPS',
- 'Build-Debian9-Clang-x86_64-Release-SwiftShader',
- 'Build-Debian9-Clang-x86_64-Release-Vulkan',
- 'Build-Debian9-EMCC-wasm-Release',
- 'Build-Debian9-GCC-loongson3a-Release',
- 'Build-Debian9-GCC-x86_64-Debug-EmbededResouces',
- 'Build-Debian9-GCC-x86_64-Release-ANGLE',
- 'Build-Debian9-GCC-x86_64-Release-Flutter_Android',
- 'Build-Debian9-GCC-x86_64-Release-NoGPU',
- 'Build-Debian9-GCC-x86_64-Release-Shared',
- 'Build-Mac-Clang-arm64-Debug-Android_Vulkan',
- 'Build-Mac-Clang-arm64-Debug-iOS',
- 'Build-Mac-Clang-x86_64-Debug-CommandBuffer',
- 'Build-Mac-Clang-x86_64-Debug-Metal',
- 'Build-Win-Clang-arm64-Release-Android',
- 'Build-Win-Clang-x86-Debug-Exceptions',
- 'Build-Win-Clang-x86_64-Debug-GDI',
- 'Build-Win-Clang-x86_64-Release',
- 'Build-Win-Clang-x86_64-Release-Vulkan',
- 'Housekeeper-PerCommit-CheckGeneratedFiles',
'Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android',
'Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android',
'Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-All-Android',
diff --git a/infra/bots/recipe_modules/flavor/flutter_flavor.py b/infra/bots/recipe_modules/flavor/flutter_flavor.py
deleted file mode 100644
index b9774d5204..0000000000
--- a/infra/bots/recipe_modules/flavor/flutter_flavor.py
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 2017 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.
-
-import re
-
-import default_flavor
-
-
-"""Flutter flavor utils, used for building Flutter with Skia."""
-
-
-class FlutterFlavorUtils(default_flavor.DefaultFlavorUtils):
-
- def compile(self, target):
- """Build Flutter with Skia."""
-
- flutter_dir = self.m.vars.checkout_root.join('src')
- configuration = self.m.vars.builder_cfg.get('configuration').lower()
- extra_tokens = self.m.vars.extra_tokens
- out_dir = configuration
-
- with self.m.context(cwd=flutter_dir):
- # Runhook to generate the gn binary in buildtools.
- self.m.gclient.runhooks()
-
- # Setup GN args.
- gn_args = [
- '--runtime-mode=%s' % configuration,
- ]
- if 'Android' in extra_tokens:
- gn_args.append('--android')
- out_dir = 'android_' + out_dir
-
- # Delete out_dir so that we start from a clean slate. See skbug/6310.
- self.m.run.rmtree(flutter_dir.join('out', out_dir))
-
- # Run GN.
- self.m.run(
- self.m.step,
- 'gn_gen',
- cmd=['flutter/tools/gn'] + gn_args)
-
- # Build Flutter.
- self.m.run(
- self.m.step,
- 'build_flutter',
- cmd=['ninja', '-C', 'out/' + out_dir, '-j100'])
diff --git a/infra/bots/recipe_modules/flavor/gn_android_flavor.py b/infra/bots/recipe_modules/flavor/gn_android_flavor.py
index e0a6c107fa..a9ca3164ee 100644
--- a/infra/bots/recipe_modules/flavor/gn_android_flavor.py
+++ b/infra/bots/recipe_modules/flavor/gn_android_flavor.py
@@ -71,11 +71,6 @@ class GNAndroidFlavorUtils(default_flavor.DefaultFlavorUtils):
with self.m.context(cwd=self.m.vars.skia_dir):
return self.m.run(self.m.step, title, cmd=list(cmd), **kwargs)
- def _py(self, title, script, infra_step=True):
- with self.m.context(cwd=self.m.vars.skia_dir):
- return self.m.run(self.m.python, title, script=script,
- infra_step=infra_step)
-
def _adb(self, title, *cmd, **kwargs):
# The only non-infra adb steps (dm / nanobench) happen to not use _adb().
if 'infra_step' not in kwargs:
@@ -343,93 +338,6 @@ if actual_freq != str(freq):
infra_step=True,
timeout=30)
- def compile(self, unused_target):
- compiler = self.m.vars.builder_cfg.get('compiler')
- configuration = self.m.vars.builder_cfg.get('configuration')
- extra_tokens = self.m.vars.extra_tokens
- os = self.m.vars.builder_cfg.get('os')
- target_arch = self.m.vars.builder_cfg.get('target_arch')
-
- assert compiler == 'Clang' # At this rate we might not ever support GCC.
-
- extra_cflags = []
- if configuration == 'Debug':
- extra_cflags.append('-O1')
-
- ndk_asset = 'android_ndk_linux'
- ndk_path = ndk_asset
- if 'Mac' in os:
- ndk_asset = 'android_ndk_darwin'
- ndk_path = ndk_asset
- elif 'Win' in os:
- ndk_asset = 'android_ndk_windows'
- ndk_path = 'n'
-
- quote = lambda x: '"%s"' % x
- args = {
- 'ndk': quote(self.m.vars.slave_dir.join(ndk_path)),
- 'target_cpu': quote(target_arch),
- }
- extra_cflags.append('-DDUMMY_ndk_version=%s' %
- self.m.run.asset_version(ndk_asset))
-
- if configuration != 'Debug':
- args['is_debug'] = 'false'
- if 'Vulkan' in extra_tokens:
- args['ndk_api'] = 24
- args['skia_enable_vulkan_debug_layers'] = 'false'
- if 'ASAN' in extra_tokens:
- args['sanitize'] = '"ASAN"'
- if target_arch == 'arm' and 'ndk_api' not in args:
- args['ndk_api'] = 21
-
- # If an Android API level is specified, use that.
- for t in extra_tokens:
- m = re.search(r'API(\d+)', t)
- if m and len(m.groups()) == 1:
- args['ndk_api'] = m.groups()[0]
- break
-
- if extra_cflags:
- args['extra_cflags'] = repr(extra_cflags).replace("'", '"')
-
- gn_args = ' '.join('%s=%s' % (k,v) for (k,v) in sorted(args.iteritems()))
- gn = 'gn.exe' if 'Win' in os else 'gn'
- ninja = 'ninja.exe' if 'Win' in os else 'ninja'
- gn = self.m.vars.skia_dir.join('bin', gn)
-
- self._py('fetch-gn', self.m.vars.skia_dir.join('bin', 'fetch-gn'))
-
- # If this is the SkQP build, set up the environment and run the script
- # to build the universal APK. This should only run the skqp branches.
- if 'SKQP' in extra_tokens:
- self.m.infra.update_go_deps()
-
- output_binary = self.out_dir.join('run_testlab')
- build_target = self.m.vars.skia_dir.join('infra', 'cts', 'run_testlab.go')
- build_cmd = ['go', 'build', '-o', output_binary, build_target]
- with self.m.context(env=self.m.infra.go_env):
- self.m.run(self.m.step, 'build firebase runner', cmd=build_cmd)
-
- # Build the APK.
- ndk_asset = 'android_ndk_linux'
- sdk_asset = 'android_sdk_linux'
- android_ndk = self.m.vars.slave_dir.join(ndk_asset)
- android_home = self.m.vars.slave_dir.join(sdk_asset, 'android-sdk')
- env = {
- 'ANDROID_NDK': android_ndk,
- 'ANDROID_HOME': android_home,
- 'APK_OUTPUT_DIR': self.out_dir,
- }
-
- mk_universal = self.m.vars.skia_dir.join('tools', 'skqp',
- 'make_universal_apk')
- with self.m.context(env=env):
- self._run('make_universal', mk_universal)
- else:
- self._run('gn gen', gn, 'gen', self.out_dir, '--args=' + gn_args)
- self._run('ninja', ninja, '-k', '0', '-C', self.out_dir)
-
def install(self):
self._adb('mkdir ' + self.device_dirs.resource_dir,
'shell', 'mkdir', '-p', self.device_dirs.resource_dir)
@@ -606,8 +514,3 @@ wait_for_device()
def create_clean_device_dir(self, path):
self._adb('rm %s' % path, 'shell', 'rm', '-rf', path)
self._adb('mkdir %s' % path, 'shell', 'mkdir', '-p', path)
-
- def copy_extra_build_products(self, swarming_out_dir):
- if 'SKQP' in self.m.vars.extra_tokens:
- wlist =self.m.vars.skia_dir.join('infra','cts', 'whitelist_devices.json')
- self.m.file.copy('copy whitelist', wlist, swarming_out_dir)
diff --git a/infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py b/infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py
index f837378479..984eccef25 100644
--- a/infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py
+++ b/infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py
@@ -67,99 +67,6 @@ class GNChromebookFlavorUtils(gn_flavor.GNFlavorUtils):
self.create_clean_device_dir(self._bin_dir)
- def compile(self, unused_target):
- configuration = self.m.vars.builder_cfg.get('configuration')
- os = self.m.vars.builder_cfg.get('os')
- target_arch = self.m.vars.builder_cfg.get('target_arch')
-
- clang_linux = self.m.vars.slave_dir.join('clang_linux')
- # This is a pretty typical arm-linux-gnueabihf sysroot
- sysroot_dir = self.m.vars.slave_dir.join('armhf_sysroot')
-
- if 'arm' == target_arch:
- # This is the extra things needed to link against for the chromebook.
- # For example, the Mali GL drivers.
- gl_dir = self.m.vars.slave_dir.join('chromebook_arm_gles')
- env = {'LD_LIBRARY_PATH': sysroot_dir.join('lib')}
- extra_asmflags = [
- '--target=armv7a-linux-gnueabihf',
- '--sysroot=%s' % sysroot_dir,
- '-march=armv7-a',
- '-mfpu=neon',
- '-mthumb',
- ]
-
- extra_cflags = [
- '--target=armv7a-linux-gnueabihf',
- '--sysroot=%s' % sysroot_dir,
- '-I%s' % gl_dir.join('include'),
- '-I%s' % sysroot_dir.join('include'),
- '-I%s' % sysroot_dir.join('include', 'c++', '4.8.4'),
- '-I%s' % sysroot_dir.join('include', 'c++', '4.8.4',
- 'arm-linux-gnueabihf'),
- '-DMESA_EGL_NO_X11_HEADERS',
- ]
-
- extra_ldflags = [
- '--target=armv7a-linux-gnueabihf',
- '--sysroot=%s' % sysroot_dir,
- # use sysroot's ld which can properly link things.
- '-B%s' % sysroot_dir.join('bin'),
- # helps locate crt*.o
- '-B%s' % sysroot_dir.join('gcc-cross'),
- # helps locate libgcc*.so
- '-L%s' % sysroot_dir.join('gcc-cross'),
- '-L%s' % sysroot_dir.join('lib'),
- '-L%s' % gl_dir.join('lib'),
- # Explicitly do not use lld for cross compiling like this - I observed
- # failures like "Unrecognized reloc 41" and couldn't find out why.
- ]
- else:
- gl_dir = self.m.vars.slave_dir.join('chromebook_x86_64_gles')
- env = {}
- extra_asmflags = []
- extra_cflags = [
- '-DMESA_EGL_NO_X11_HEADERS',
- '-I%s' % gl_dir.join('include'),
- ]
- extra_ldflags = [
- '-L%s' % gl_dir.join('lib'),
- '-static-libstdc++', '-static-libgcc',
- '-fuse-ld=lld',
- ]
-
- quote = lambda x: '"%s"' % x
- args = {
- 'cc': quote(clang_linux.join('bin','clang')),
- 'cxx': quote(clang_linux.join('bin','clang++')),
- 'target_cpu': quote(target_arch),
- 'skia_use_fontconfig': 'false',
- 'skia_use_system_freetype2': 'false',
- 'skia_use_egl': 'true',
- }
- extra_cflags.append('-DDUMMY_clang_linux_version=%s' %
- self.m.run.asset_version('clang_linux'))
-
- if configuration != 'Debug':
- args['is_debug'] = 'false'
- args['extra_asmflags'] = repr(extra_asmflags).replace("'", '"')
- args['extra_cflags'] = repr(extra_cflags).replace("'", '"')
- args['extra_ldflags'] = repr(extra_ldflags).replace("'", '"')
-
- gn_args = ' '.join('%s=%s' % (k,v) for (k,v) in sorted(args.iteritems()))
-
- gn = 'gn.exe' if 'Win' in os else 'gn'
- ninja = 'ninja.exe' if 'Win' in os else 'ninja'
- gn = self.m.vars.skia_dir.join('bin', gn)
-
- with self.m.context(cwd=self.m.vars.skia_dir,
- env=env):
- self._py('fetch-gn', self.m.vars.skia_dir.join('bin', 'fetch-gn'))
- self._run('gn gen', [gn, 'gen', self.out_dir, '--args=' + gn_args])
- self._run('ninja', [ninja, '-k', '0'
- , '-C', self.out_dir
- , 'nanobench', 'dm'])
-
def create_clean_device_dir(self, path):
# use -f to silently return if path doesn't exist
self._ssh('rm %s' % path, 'rm', '-rf', path)
diff --git a/infra/bots/recipe_modules/flavor/gn_chromecast_flavor.py b/infra/bots/recipe_modules/flavor/gn_chromecast_flavor.py
index 987359243b..9ab77eaf35 100644
--- a/infra/bots/recipe_modules/flavor/gn_chromecast_flavor.py
+++ b/infra/bots/recipe_modules/flavor/gn_chromecast_flavor.py
@@ -51,64 +51,6 @@ class GNChromecastFlavorUtils(gn_android_flavor.GNAndroidFlavorUtils):
def user_ip(self):
return self.user_ip_host.split(':')[0]
- def compile(self, unused_target):
- configuration = self.m.vars.builder_cfg.get('configuration')
- os = self.m.vars.builder_cfg.get('os')
- target_arch = self.m.vars.builder_cfg.get('target_arch')
-
- # TODO(kjlubick): can this toolchain be replaced/shared with chromebook?
- toolchain_dir = self.m.vars.slave_dir.join('cast_toolchain', 'armv7a')
- gles_dir = self.m.vars.slave_dir.join('chromebook_arm_gles')
-
- extra_cflags = [
- '-I%s' % gles_dir.join('include'),
- '-DMESA_EGL_NO_X11_HEADERS',
- "-DSK_NO_COMMAND_BUFFER",
- # Avoid unused warning with yyunput
- '-Wno-error=unused-function',
- # Makes the binary small enough to fit on the small disk.
- '-g0',
- ('-DDUMMY_cast_toolchain_version=%s' %
- self.m.run.asset_version('cast_toolchain')),
- ]
-
- extra_ldflags = [
- # Chromecast does not package libstdc++
- '-static-libstdc++', '-static-libgcc',
- '-L%s' % toolchain_dir.join('lib'),
- ]
-
- quote = lambda x: '"%s"' % x
- args = {
- 'cc': quote(toolchain_dir.join('bin','armv7a-cros-linux-gnueabi-gcc')),
- 'cxx': quote(toolchain_dir.join('bin','armv7a-cros-linux-gnueabi-g++')),
- 'ar': quote(toolchain_dir.join('bin','armv7a-cros-linux-gnueabi-ar')),
- 'target_cpu': quote(target_arch),
- 'skia_use_fontconfig': 'false',
- 'skia_enable_gpu': 'true',
- # The toolchain won't allow system libraries to be used
- # when cross-compiling
- 'skia_use_system_freetype2': 'false',
- # Makes the binary smaller
- 'skia_use_icu': 'false',
- 'skia_use_egl': 'true',
- }
-
- if configuration != 'Debug':
- args['is_debug'] = 'false'
- args['extra_cflags'] = repr(extra_cflags).replace("'", '"')
- args['extra_ldflags'] = repr(extra_ldflags).replace("'", '"')
-
- gn_args = ' '.join('%s=%s' % (k,v) for (k,v) in sorted(args.iteritems()))
-
- gn = 'gn.exe' if 'Win' in os else 'gn'
- ninja = 'ninja.exe' if 'Win' in os else 'ninja'
- gn = self.m.vars.skia_dir.join('bin', gn)
-
- self._py('fetch-gn', self.m.vars.skia_dir.join('bin', 'fetch-gn'))
- self._run('gn gen', gn, 'gen', self.out_dir, '--args=' + gn_args)
- self._run('ninja', ninja, '-k', '0', '-C', self.out_dir, 'nanobench', 'dm')
-
def install(self):
super(GNChromecastFlavorUtils, self).install()
self._adb('mkdir ' + self.m.vars.android_bin_dir,
diff --git a/infra/bots/recipe_modules/flavor/gn_flavor.py b/infra/bots/recipe_modules/flavor/gn_flavor.py
index fc1a199475..8d16015ca4 100644
--- a/infra/bots/recipe_modules/flavor/gn_flavor.py
+++ b/infra/bots/recipe_modules/flavor/gn_flavor.py
@@ -6,6 +6,7 @@ import default_flavor
"""GN flavor utils, used for building Skia with GN."""
class GNFlavorUtils(default_flavor.DefaultFlavorUtils):
+ # TODO(borenet): Delete this file.
def _run(self, title, cmd, infra_step=False, **kwargs):
return self.m.run(self.m.step, title, cmd=cmd,
infra_step=infra_step, **kwargs)
@@ -14,272 +15,6 @@ class GNFlavorUtils(default_flavor.DefaultFlavorUtils):
return self.m.run(self.m.python, title, script=script, args=args,
infra_step=infra_step)
- def build_command_buffer(self):
- self.m.run(self.m.python, 'build command_buffer',
- script=self.m.vars.skia_dir.join('tools', 'build_command_buffer.py'),
- args=[
- '--chrome-dir', self.m.vars.checkout_root,
- '--output-dir', self.m.vars.skia_out.join(self.m.vars.configuration),
- '--no-sync', '--no-hooks', '--make-output-dir'])
-
- def compile_swiftshader(self, swiftshader_root, cc, cxx, out):
- """Build SwiftShader with CMake.
-
- Building SwiftShader works differently from any other Skia third_party lib.
- See discussion in skia:7671 for more detail.
-
- Args:
- swiftshader_root: root of the SwiftShader checkout.
- cc, cxx: compiler binaries to use
- out: target directory for libEGL.so and libGLESv2.so
- """
- cmake_bin = str(self.m.vars.slave_dir.join('cmake_linux', 'bin'))
- env = {
- 'CC': cc,
- 'CXX': cxx,
- 'PATH': '%%(PATH)s:%s' % cmake_bin
- }
- self.m.file.ensure_directory('makedirs swiftshader_out', out)
- with self.m.context(cwd=out, env=env):
- self._run('swiftshader cmake', ['cmake', swiftshader_root, '-GNinja'])
- self._run('swiftshader ninja',
- ['ninja', '-C', out, 'libEGL.so', 'libGLESv2.so'])
-
- def compile(self, unused_target):
- """Build Skia with GN."""
- compiler = self.m.vars.builder_cfg.get('compiler', '')
- configuration = self.m.vars.builder_cfg.get('configuration', '')
- extra_tokens = self.m.vars.extra_tokens
- os = self.m.vars.builder_cfg.get('os', '')
- target_arch = self.m.vars.builder_cfg.get('target_arch', '')
-
- clang_linux = str(self.m.vars.slave_dir.join('clang_linux'))
- emscripten_sdk = str(self.m.vars.slave_dir.join('emscripten_sdk'))
- linux_vulkan_sdk = str(self.m.vars.slave_dir.join('linux_vulkan_sdk'))
- win_toolchain = str(self.m.vars.slave_dir.join(
- 't', 'depot_tools', 'win_toolchain', 'vs_files',
- 'a9e1098bba66d2acccc377d5ee81265910f29272'))
- win_vulkan_sdk = str(self.m.vars.slave_dir.join('win_vulkan_sdk'))
-
- cc, cxx = None, None
- extra_cflags = []
- extra_ldflags = []
- args = {}
- env = {}
-
- if compiler == 'Clang' and self.m.vars.is_linux:
- cc = clang_linux + '/bin/clang'
- cxx = clang_linux + '/bin/clang++'
- extra_cflags .append('-B%s/bin' % clang_linux)
- extra_ldflags.append('-B%s/bin' % clang_linux)
- extra_ldflags.append('-fuse-ld=lld')
- extra_cflags.append('-DDUMMY_clang_linux_version=%s' %
- self.m.run.asset_version('clang_linux'))
- if os == 'Ubuntu14':
- extra_ldflags.extend(['-static-libstdc++', '-static-libgcc'])
-
- elif compiler == 'Clang':
- cc, cxx = 'clang', 'clang++'
- elif compiler == 'GCC':
- if target_arch in ['mips64el', 'loongson3a']:
- mips64el_toolchain_linux = str(self.m.vars.slave_dir.join(
- 'mips64el_toolchain_linux'))
- cc = mips64el_toolchain_linux + '/bin/mips64el-linux-gnuabi64-gcc-7'
- cxx = mips64el_toolchain_linux + '/bin/mips64el-linux-gnuabi64-g++-7'
- env['LD_LIBRARY_PATH'] = (
- mips64el_toolchain_linux + '/lib/x86_64-linux-gnu/')
- extra_ldflags.append('-L' + mips64el_toolchain_linux +
- '/mips64el-linux-gnuabi64/lib')
- extra_cflags.extend([
- '-Wno-format-truncation',
- '-Wno-uninitialized',
- ('-DDUMMY_mips64el_toolchain_linux_version=%s' %
- self.m.run.asset_version('mips64el_toolchain_linux'))
- ])
- if configuration == 'Release':
- # This warning is only triggered when fuzz_canvas is inlined.
- extra_cflags.append('-Wno-strict-overflow')
- args.update({
- 'skia_use_system_freetype2': 'false',
- 'skia_use_fontconfig': 'false',
- 'skia_enable_gpu': 'false',
- })
- else:
- cc, cxx = 'gcc', 'g++'
- elif compiler == 'EMCC':
- cc = emscripten_sdk + '/emscripten/incoming/emcc'
- cxx = emscripten_sdk + '/emscripten/incoming/em++'
- extra_cflags.append('-Wno-unknown-warning-option')
- extra_cflags.append('-DDUMMY_emscripten_sdk_version=%s' %
- self.m.run.asset_version('emscripten_sdk'))
-
- if 'Coverage' in extra_tokens:
- # See https://clang.llvm.org/docs/SourceBasedCodeCoverage.html for
- # more info on using llvm to gather coverage information.
- extra_cflags.append('-fprofile-instr-generate')
- extra_cflags.append('-fcoverage-mapping')
- extra_ldflags.append('-fprofile-instr-generate')
- extra_ldflags.append('-fcoverage-mapping')
-
- if compiler != 'MSVC' and configuration == 'Debug':
- extra_cflags.append('-O1')
-
- if 'Exceptions' in extra_tokens:
- extra_cflags.append('/EHsc')
- if 'Fast' in extra_tokens:
- extra_cflags.extend(['-march=native', '-fomit-frame-pointer', '-O3',
- '-ffp-contract=off'])
-
- if len(extra_tokens) == 1 and extra_tokens[0].startswith('SK'):
- extra_cflags.append('-D' + extra_tokens[0])
- # If we're limiting Skia at all, drop skcms to portable code.
- if 'SK_CPU_LIMIT' in extra_tokens[0]:
- extra_cflags.append('-DSKCMS_PORTABLE')
-
-
- if 'MSAN' in extra_tokens:
- extra_ldflags.append('-L' + clang_linux + '/msan')
-
- if configuration != 'Debug':
- args['is_debug'] = 'false'
- if 'ANGLE' in extra_tokens:
- args['skia_use_angle'] = 'true'
- if 'SwiftShader' in extra_tokens:
- swiftshader_root = self.m.vars.skia_dir.join('third_party', 'externals',
- 'swiftshader')
- swiftshader_out = self.m.vars.skia_out.join('swiftshader_out')
- self.compile_swiftshader(swiftshader_root, cc, cxx, swiftshader_out)
- args['skia_use_egl'] = 'true'
- extra_cflags.extend([
- '-DGR_EGL_TRY_GLES3_THEN_GLES2',
- # TODO(dogben): Use headers from Khronos rather than SwiftShader's
- # copy.
- '-I%s' % swiftshader_root.join('include'),
- ])
- extra_ldflags.extend([
- '-L%s' % swiftshader_out,
- ])
- if 'CommandBuffer' in extra_tokens:
- self.m.run.run_once(self.build_command_buffer)
- if 'MSAN' in extra_tokens:
- args['skia_enable_gpu'] = 'false'
- args['skia_use_fontconfig'] = 'false'
- if 'ASAN' in extra_tokens or 'UBSAN' in extra_tokens:
- args['skia_enable_spirv_validation'] = 'false'
- if 'Mini' in extra_tokens:
- args.update({
- 'is_component_build': 'true', # Proves we can link a coherent .so.
- 'is_official_build': 'true', # No debug symbols, no tools.
- 'skia_enable_effects': 'false',
- 'skia_enable_gpu': 'true',
- 'skia_enable_pdf': 'false',
- 'skia_use_expat': 'false',
- 'skia_use_libjpeg_turbo': 'false',
- 'skia_use_libpng': 'false',
- 'skia_use_libwebp': 'false',
- 'skia_use_zlib': 'false',
- })
- if 'NoDEPS' in extra_tokens:
- args.update({
- 'is_official_build': 'true',
- 'skia_enable_fontmgr_empty': 'true',
- 'skia_enable_gpu': 'true',
-
- 'skia_enable_effects': 'false',
- 'skia_enable_pdf': 'false',
- 'skia_use_expat': 'false',
- 'skia_use_freetype': 'false',
- 'skia_use_libjpeg_turbo': 'false',
- 'skia_use_libpng': 'false',
- 'skia_use_libwebp': 'false',
- 'skia_use_vulkan': 'false',
- 'skia_use_zlib': 'false',
- })
- if 'NoGPU' in extra_tokens:
- args['skia_enable_gpu'] = 'false'
- if 'EmbededResouces' in extra_tokens:
- args['skia_embed_resoucres'] = 'true'
- if 'Shared' in extra_tokens:
- args['is_component_build'] = 'true'
- if 'Vulkan' in extra_tokens and not 'Android' in extra_tokens:
- args['skia_enable_vulkan_debug_layers'] = 'false'
- if self.m.vars.is_linux:
- args['skia_vulkan_sdk'] = '"%s"' % linux_vulkan_sdk
- if 'Win' in os:
- args['skia_vulkan_sdk'] = '"%s"' % win_vulkan_sdk
- if 'Metal' in extra_tokens:
- args['skia_use_metal'] = 'true'
- if 'iOS' in extra_tokens:
- # Bots use Chromium signing cert.
- args['skia_ios_identity'] = '".*GS9WA.*"'
- args['skia_ios_profile'] = '"Upstream Testing Provisioning Profile"'
- if 'CheckGeneratedFiles' in extra_tokens:
- args['skia_compile_processors'] = 'true'
- args['skia_generate_workarounds'] = 'true'
- if compiler == 'Clang' and 'Win' in os:
- args['clang_win'] = '"%s"' % self.m.vars.slave_dir.join('clang_win')
- extra_cflags.append('-DDUMMY_clang_win_version=%s' %
- self.m.run.asset_version('clang_win'))
- if target_arch == 'wasm':
- args.update({
- 'skia_use_freetype': 'false',
- 'skia_use_fontconfig': 'false',
- 'skia_use_dng_sdk': 'false',
- 'skia_use_icu': 'false',
- 'skia_enable_gpu': 'false',
- })
-
- sanitize = ''
- for t in extra_tokens:
- if t.endswith('SAN'):
- sanitize = t
- if 'SafeStack' in extra_tokens:
- assert sanitize == ''
- sanitize = 'safe-stack'
-
- for (k,v) in {
- 'cc': cc,
- 'cxx': cxx,
- 'sanitize': sanitize,
- 'target_cpu': target_arch,
- 'target_os': 'ios' if 'iOS' in extra_tokens else '',
- 'win_sdk': win_toolchain + '/win_sdk' if 'Win' in os else '',
- 'win_vc': win_toolchain + '/VC' if 'Win' in os else '',
- }.iteritems():
- if v:
- args[k] = '"%s"' % v
- if extra_cflags:
- args['extra_cflags'] = repr(extra_cflags).replace("'", '"')
- if extra_ldflags:
- args['extra_ldflags'] = repr(extra_ldflags).replace("'", '"')
-
- gn_args = ' '.join('%s=%s' % (k,v) for (k,v) in sorted(args.iteritems()))
-
- gn = 'gn.exe' if 'Win' in os else 'gn'
- ninja = 'ninja.exe' if 'Win' in os else 'ninja'
- gn = self.m.vars.skia_dir.join('bin', gn)
-
- with self.m.context(cwd=self.m.vars.skia_dir):
- self._py('fetch-gn', self.m.vars.skia_dir.join('bin', 'fetch-gn'))
- if 'CheckGeneratedFiles' in extra_tokens:
- env['PATH'] = '%s:%%(PATH)s' % self.m.vars.skia_dir.join('bin')
- self._py(
- 'fetch-clang-format',
- self.m.vars.skia_dir.join('bin', 'fetch-clang-format'))
- if target_arch == 'wasm':
- fastcomp = emscripten_sdk + '/clang/fastcomp/build_incoming_64/bin'
- env['PATH'] = '%s:%%(PATH)s' % fastcomp
-
- with self.m.env(env):
- self._run('gn gen', [gn, 'gen', self.out_dir, '--args=' + gn_args])
- self._run('ninja', [ninja, '-k', '0', '-C', self.out_dir])
-
- def copy_extra_build_products(self, swarming_out_dir):
- if 'SwiftShader' in self.m.vars.extra_tokens:
- self.m.run.copy_build_products(
- self.m.vars.skia_out.join('swiftshader_out'),
- swarming_out_dir.join('out', 'swiftshader_out'))
-
def step(self, name, cmd):
app = self.m.vars.skia_out.join(self.m.vars.configuration, cmd[0])
cmd = [app] + cmd[1:]
diff --git a/infra/bots/recipe_modules/flavor/valgrind_flavor.py b/infra/bots/recipe_modules/flavor/valgrind_flavor.py
index 79235b0c9c..4e3475b19f 100644
--- a/infra/bots/recipe_modules/flavor/valgrind_flavor.py
+++ b/infra/bots/recipe_modules/flavor/valgrind_flavor.py
@@ -23,7 +23,7 @@ class ValgrindFlavorUtils(gn_flavor.GNFlavorUtils):
new_cmd = [self._valgrind, '--gen-suppressions=all', '--leak-check=full',
'--track-origins=yes', '--error-exitcode=1', '--num-callers=40',
'--suppressions=%s' % self._suppressions_file]
- path_to_app = self.out_dir.join(cmd[0])
+ path_to_app = self.m.vars.skia_out.join(self.m.vars.configuration, cmd[0])
new_cmd.append(path_to_app)
new_cmd.extend(cmd[1:])
with self.m.env({'VALGRIND_LIB': self._lib_dir}):
diff --git a/infra/bots/recipe_modules/run/api.py b/infra/bots/recipe_modules/run/api.py
index d45f0ced49..3464ef7bbf 100644
--- a/infra/bots/recipe_modules/run/api.py
+++ b/infra/bots/recipe_modules/run/api.py
@@ -10,27 +10,6 @@ from recipe_engine import recipe_api
TEST_DEFAULT_ASSET_VERSION = '42'
-BUILD_PRODUCTS_ISOLATE_WHITELIST = [
- 'bookmaker',
- 'dm',
- 'dm.exe',
- 'dm.app',
- 'nanobench.app',
- 'get_images_from_skps',
- 'get_images_from_skps.exe',
- 'nanobench',
- 'nanobench.exe',
- 'skpbench',
- '*.so',
- '*.dll',
- '*.dylib',
- 'skia_launcher',
- 'skiaserve',
- 'lib/*.so',
- 'run_testlab',
- 'skqp-universal-debug.apk',
- 'whitelist_devices.json'
-]
class SkiaStepApi(recipe_api.RecipeApi):
@@ -99,38 +78,6 @@ class SkiaStepApi(recipe_api.RecipeApi):
if abort_on_failure:
raise
- def copy_build_products(self, src, dst):
- """Copy whitelisted build products from src to dst."""
- self.m.python.inline(
- name='copy build products',
- program='''import errno
-import glob
-import os
-import shutil
-import sys
-
-src = sys.argv[1]
-dst = sys.argv[2]
-build_products_whitelist = %s
-
-try:
- os.makedirs(dst)
-except OSError as e:
- if e.errno != errno.EEXIST:
- raise
-
-for pattern in build_products_whitelist:
- path = os.path.join(src, pattern)
- for f in glob.glob(path):
- dst_path = os.path.join(dst, os.path.relpath(f, src))
- if not os.path.isdir(os.path.dirname(dst_path)):
- os.makedirs(os.path.dirname(dst_path))
- print 'Copying build product %%s to %%s' %% (f, dst_path)
- shutil.move(f, dst_path)
-''' % str(BUILD_PRODUCTS_ISOLATE_WHITELIST),
- args=[src, dst],
- infra_step=True)
-
def with_retry(self, steptype, name, attempts, between_attempts_fn=None,
abort_on_failure=True, fail_build_on_failure=True, **kwargs):
for attempt in xrange(attempts):
diff --git a/infra/bots/recipe_modules/run/examples/full.expected/test.json b/infra/bots/recipe_modules/run/examples/full.expected/test.json
index 0d4e279414..127080ee7f 100644
--- a/infra/bots/recipe_modules/run/examples/full.expected/test.json
+++ b/infra/bots/recipe_modules/run/examples/full.expected/test.json
@@ -126,44 +126,6 @@
},
{
"cmd": [
- "python",
- "-u",
- "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
- "src",
- "dst"
- ],
- "infra_step": true,
- "name": "copy build products",
- "~followup_annotations": [
- "@@@STEP_LOG_LINE@python.inline@import errno@@@",
- "@@@STEP_LOG_LINE@python.inline@import glob@@@",
- "@@@STEP_LOG_LINE@python.inline@import os@@@",
- "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
- "@@@STEP_LOG_LINE@python.inline@import sys@@@",
- "@@@STEP_LOG_LINE@python.inline@@@@",
- "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
- "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
- "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
- "@@@STEP_LOG_LINE@python.inline@@@@",
- "@@@STEP_LOG_LINE@python.inline@try:@@@",
- "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
- "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
- "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
- "@@@STEP_LOG_LINE@python.inline@ raise@@@",
- "@@@STEP_LOG_LINE@python.inline@@@@",
- "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
- "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
- "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
- "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
- "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
- "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
- "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
- "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
- "@@@STEP_LOG_END@python.inline@@@"
- ]
- },
- {
- "cmd": [
"false"
],
"env": {
diff --git a/infra/bots/recipe_modules/run/examples/full.py b/infra/bots/recipe_modules/run/examples/full.py
index 96828f6917..7f93233514 100644
--- a/infra/bots/recipe_modules/run/examples/full.py
+++ b/infra/bots/recipe_modules/run/examples/full.py
@@ -41,9 +41,6 @@ def RunSteps(api):
with api.context(env={'PATH': 'mydir:%(PATH)s'}):
api.run(api.step, 'env', cmd=['env'])
- # Copy build products.
- api.run.copy_build_products('src', 'dst')
-
def between_attempts_fn(attempt):
api.run(api.step, 'between_attempts #%d' % attempt,
cmd=['echo', 'between_attempt'])