Add Docker-based GCC Test tasks
Since we've moved compilation to a Debian10 Docker container, the
resulting binaries won't run on Debian9 unless we also run them in a
Debian10 Docker container.
Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker failures are
tracked in skia:9664.
Bug: skia:9632, skia:9664
Change-Id: I97edc142cf558e30d11bd7bc3b5d1b423ba2418b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255152
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
diff --git a/infra/bots/gen_tasks_logic/gen_tasks_logic.go b/infra/bots/gen_tasks_logic/gen_tasks_logic.go
index 75bf0f1..de48fc3 100644
--- a/infra/bots/gen_tasks_logic/gen_tasks_logic.go
+++ b/infra/bots/gen_tasks_logic/gen_tasks_logic.go
@@ -463,7 +463,7 @@
"Skpbench", "AbandonGpuContext", "PreAbandonGpuContext", "Valgrind",
"ReleaseAndAbandonGpuContext", "CCPR", "FSAA", "FAAA", "FDAA", "NativeFonts", "GDI",
"NoGPUThreads", "ProcDump", "DDL1", "DDL3", "T8888", "DDLTotal", "DDLRecord", "9x9",
- "BonusConfigs", "SkottieTracing", "SkottieWASM", "NonNVPR", "Mskp"}
+ "BonusConfigs", "SkottieTracing", "SkottieWASM", "NonNVPR", "Mskp", "Docker"}
keep := make([]string, 0, len(ec))
for _, part := range ec {
if !In(part, ignore) {
@@ -488,6 +488,11 @@
task_os = "Mac"
} else if strings.Contains(task_os, "Win") {
task_os = "Win"
+ } else if parts["compiler"] == "GCC" && task_os == "Debian10" {
+ // GCC compiles are now on a Docker container. We use the same OS and
+ // version to compile as to test.
+ // TODO(dogben): Remove Debian10 criteria above.
+ ec = append(ec, "Docker")
} else if strings.Contains(task_os, "Ubuntu") || strings.Contains(task_os, "Debian") {
task_os = "Debian9"
} else if strings.Contains(task_os, "Mac") {
@@ -542,7 +547,7 @@
d := map[string]string{
"pool": b.cfg.Pool,
}
- if strings.Contains(parts["extra_config"], "Docker") && parts["role"] == "Build" {
+ if strings.Contains(parts["extra_config"], "Docker") && (parts["role"] == "Build" || (parts["cpu_or_gpu"] == "CPU" && parts["model"] == "GCE")) {
return b.dockerGceDimensions()
}
if os, ok := parts["os"]; ok {
diff --git a/infra/bots/jobs.json b/infra/bots/jobs.json
index c0a5d67..d12ddff 100644
--- a/infra/bots/jobs.json
+++ b/infra/bots/jobs.json
@@ -387,6 +387,10 @@
"Test-Chromecast-Clang-Chorizo-CPU-Cortex_A7-arm-Release-All",
"Test-Chromecast-Clang-Chorizo-GPU-Cortex_A7-arm-Debug-All",
"Test-Chromecast-Clang-Chorizo-GPU-Cortex_A7-arm-Release-All",
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker",
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker",
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker",
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker",
"Test-Debian9-Clang-GCE-CPU-AVX2-x86-Debug-All",
"Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All",
"Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN",
diff --git a/infra/bots/recipe_modules/docker/api.py b/infra/bots/recipe_modules/docker/api.py
index 4fb7560..8426676 100644
--- a/infra/bots/recipe_modules/docker/api.py
+++ b/infra/bots/recipe_modules/docker/api.py
@@ -21,6 +21,12 @@
name = ' '.join([str(elem) for elem in cmd])
self.m.step(name, cmd=cmd, infra_step=True)
+ def mount_src(self):
+ return MOUNT_SRC
+
+ def mount_out(self):
+ return MOUNT_OUT
+
def run(self, name, docker_image, src_dir, out_dir, script, args=None, docker_args=None, copies=None, recursive_read=None, attempts=1):
# Setup. Docker runs as a different user, so we need to give it access to
# read, write, and execute certain files.
diff --git a/infra/bots/recipe_modules/docker/examples/full.expected/test.json b/infra/bots/recipe_modules/docker/examples/full.expected/test.json
index f1aca22..d26a16e 100644
--- a/infra/bots/recipe_modules/docker/examples/full.expected/test.json
+++ b/infra/bots/recipe_modules/docker/examples/full.expected/test.json
@@ -131,8 +131,10 @@
"2",
"my.docker.image",
"/SRC/../do-stuff.sh",
- "--key",
- "value"
+ "--src",
+ "/SRC",
+ "--out",
+ "/OUT"
],
"env": {
"CHROME_HEADLESS": "1",
diff --git a/infra/bots/recipe_modules/docker/examples/full.py b/infra/bots/recipe_modules/docker/examples/full.py
index f2c620e..390ea94 100644
--- a/infra/bots/recipe_modules/docker/examples/full.py
+++ b/infra/bots/recipe_modules/docker/examples/full.py
@@ -20,7 +20,7 @@
src_dir='/host-src',
out_dir='/host-out',
script='./do-stuff.sh',
- args=['--key', 'value'],
+ args=['--src', api.docker.mount_src(), '--out', api.docker.mount_out()],
docker_args=['--cpus', '2'],
copies={'/copy-src/myfile': '/copy-dst/myfile'},
recursive_read=['/host-src'],
diff --git a/infra/bots/recipe_modules/flavor/__init__.py b/infra/bots/recipe_modules/flavor/__init__.py
index 28b3d9b..9e6c0b0 100644
--- a/infra/bots/recipe_modules/flavor/__init__.py
+++ b/infra/bots/recipe_modules/flavor/__init__.py
@@ -8,6 +8,7 @@
'depot_tools/cipd',
'depot_tools/gclient',
'depot_tools/git',
+ 'docker',
'env',
'infra',
'recipe_engine/context',
diff --git a/infra/bots/recipe_modules/flavor/api.py b/infra/bots/recipe_modules/flavor/api.py
index 23896b7..dc89baf 100644
--- a/infra/bots/recipe_modules/flavor/api.py
+++ b/infra/bots/recipe_modules/flavor/api.py
@@ -12,6 +12,7 @@
from . import chromebook
from . import chromecast
from . import default
+from . import docker
from . import ios
from . import valgrind
from . import win_ssh
@@ -50,6 +51,9 @@
return ('Chromebook' in vars_api.extra_tokens or
'ChromeOS' in vars_api.builder_cfg.get('os', ''))
+def is_docker(vars_api):
+ return 'Docker' 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', ''))
@@ -74,6 +78,8 @@
return chromebook.ChromebookFlavor(self)
if is_android(vars_api) and not is_test_skqp(vars_api):
return android.AndroidFlavor(self)
+ elif is_docker(vars_api):
+ return docker.DockerFlavor(self)
elif is_ios(vars_api):
return ios.iOSFlavor(self)
elif is_valgrind(vars_api):
diff --git a/infra/bots/recipe_modules/flavor/docker.py b/infra/bots/recipe_modules/flavor/docker.py
new file mode 100644
index 0000000..60cf5f6
--- /dev/null
+++ b/infra/bots/recipe_modules/flavor/docker.py
@@ -0,0 +1,69 @@
+# Copyright 2014 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 default
+
+"""Docker flavor, used for running inside a Docker container."""
+
+
+# TODO(dogben): Move this mapping to a machine-editable file.
+# TODO(dogben): Use images without extra packages installed.
+IMAGES = {
+ 'gcc-debian10': (
+ 'gcr.io/skia-public/gcc-debian10@sha256:'
+ '89a72df1e2fdea6f774a3fa4199bb9aaa4a0526a3ac1f233e604d689b694f95c'),
+ 'gcc-debian10-x86': (
+ 'gcr.io/skia-public/gcc-debian10-x86@sha256:'
+ 'b1ec55403ac66d9500d033d6ffd7663894d32335711fbbb0fb4c67dfce812203'),
+}
+
+
+class DockerFlavor(default.DefaultFlavor):
+ def __init__(self, m):
+ super(DockerFlavor, self).__init__(m)
+
+ def _map_host_path_to_docker(self, path):
+ """Returns the path in the Docker container mapped to the given path.
+
+ Returns None if the path is not mapped into the Docker container.
+ """
+ path = str(path)
+ for (docker_dir, host_dir) in [
+ (self.m.docker.mount_out(), str(self.m.vars.swarming_out_dir)),
+ (self.m.docker.mount_src(), str(self.m.path['start_dir'])),
+ ]:
+ if path.startswith(host_dir):
+ return docker_dir + path[len(host_dir):]
+ return None
+
+ def step(self, name, cmd, **unused_kwargs):
+ extra_tokens = self.m.vars.extra_tokens
+ extra_tokens.remove('Docker')
+ os = self.m.vars.builder_cfg.get('os', '')
+ model = self.m.vars.builder_cfg.get('model', '')
+ cpu_or_gpu = self.m.vars.builder_cfg.get('cpu_or_gpu', '')
+ arch = self.m.vars.builder_cfg.get('arch', '')
+
+ image_name = None
+ if (os == 'Debian10' and model == 'GCE' and cpu_or_gpu == 'CPU' and
+ not extra_tokens):
+ if arch == 'x86_64':
+ image_name = 'gcc-debian10'
+ elif arch == 'x86':
+ image_name = 'gcc-debian10-x86'
+
+ if not image_name: # pragma: nocover
+ raise Exception('Not implemented: ' + self.m.vars.builder_name)
+
+ image_hash = IMAGES[image_name]
+
+ # TODO(dogben): Currently Linux-specific.
+ app = self._map_host_path_to_docker(self.device_dirs.bin_dir.join(cmd[0]))
+ args = [self.m.docker.mount_src(), 'catchsegv', app] + [
+ self._map_host_path_to_docker(x) or x for x in cmd[1:]]
+ self.m.docker.run('symbolized %s in Docker' % name, image_hash,
+ self.m.path['start_dir'], self.m.vars.swarming_out_dir,
+ self.module.resource('symbolize_stack_trace.py'),
+ args=args)
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker.json
new file mode 100644
index 0000000..0b7a600
--- /dev/null
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker.json
@@ -0,0 +1,281 @@
+[
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "file.txt",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "read file.txt",
+ "~followup_annotations": [
+ "@@@STEP_LOG_END@file.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "remove",
+ "file.txt"
+ ],
+ "infra_step": true,
+ "name": "remove file.txt"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-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": [
+ "vpython",
+ "-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": [
+ "vpython",
+ "-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": [
+ "vpython",
+ "-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": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get skp VERSION",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@VERSION@42@@@",
+ "@@@STEP_LOG_END@VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-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",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@SKP_VERSION@42@@@",
+ "@@@STEP_LOG_END@SKP_VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get skimage VERSION",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@VERSION@42@@@",
+ "@@@STEP_LOG_END@VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-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",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@",
+ "@@@STEP_LOG_END@SK_IMAGE_VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get svg VERSION",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@VERSION@42@@@",
+ "@@@STEP_LOG_END@VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-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",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@SVG_VERSION@42@@@",
+ "@@@STEP_LOG_END@SVG_VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Docker setup"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/[SWARM_OUT_DIR]"
+ ],
+ "infra_step": true,
+ "name": "Docker setup.mkdirs out_dir",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "chmod",
+ "777",
+ "[START_DIR]/[SWARM_OUT_DIR]"
+ ],
+ "infra_step": true,
+ "name": "Docker setup.chmod 777 [START_DIR]/[SWARM_OUT_DIR]",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "[START_DIR]"
+ ],
+ "infra_step": true,
+ "name": "Docker setup.chmod 755 [START_DIR]",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "chmod",
+ "0755",
+ "RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py"
+ ],
+ "infra_step": true,
+ "name": "Docker setup.chmod 0755 RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "docker",
+ "run",
+ "--shm-size=2gb",
+ "--rm",
+ "--mount",
+ "type=bind,source=[START_DIR],target=/SRC",
+ "--mount",
+ "type=bind,source=[START_DIR]/[SWARM_OUT_DIR],target=/OUT",
+ "gcr.io/skia-public/gcc-debian10-x86@sha256:b1ec55403ac66d9500d033d6ffd7663894d32335711fbbb0fb4c67dfce812203",
+ "/SRC/../RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py",
+ "/SRC",
+ "catchsegv",
+ "/SRC/build/dm",
+ "--some-flag"
+ ],
+ "env": {
+ "CHROME_HEADLESS": "1",
+ "DOCKER_CONFIG": "/home/chrome-bot/.docker",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "name": "symbolized dm in Docker"
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker.json
new file mode 100644
index 0000000..bb855cd
--- /dev/null
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker.json
@@ -0,0 +1,281 @@
+[
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "file.txt",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "read file.txt",
+ "~followup_annotations": [
+ "@@@STEP_LOG_END@file.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "remove",
+ "file.txt"
+ ],
+ "infra_step": true,
+ "name": "remove file.txt"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-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": [
+ "vpython",
+ "-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": [
+ "vpython",
+ "-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": [
+ "vpython",
+ "-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": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get skp VERSION",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@VERSION@42@@@",
+ "@@@STEP_LOG_END@VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-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",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@SKP_VERSION@42@@@",
+ "@@@STEP_LOG_END@SKP_VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get skimage VERSION",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@VERSION@42@@@",
+ "@@@STEP_LOG_END@VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-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",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@",
+ "@@@STEP_LOG_END@SK_IMAGE_VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get svg VERSION",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@VERSION@42@@@",
+ "@@@STEP_LOG_END@VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-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",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@SVG_VERSION@42@@@",
+ "@@@STEP_LOG_END@SVG_VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Docker setup"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/[SWARM_OUT_DIR]"
+ ],
+ "infra_step": true,
+ "name": "Docker setup.mkdirs out_dir",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "chmod",
+ "777",
+ "[START_DIR]/[SWARM_OUT_DIR]"
+ ],
+ "infra_step": true,
+ "name": "Docker setup.chmod 777 [START_DIR]/[SWARM_OUT_DIR]",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "[START_DIR]"
+ ],
+ "infra_step": true,
+ "name": "Docker setup.chmod 755 [START_DIR]",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "chmod",
+ "0755",
+ "RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py"
+ ],
+ "infra_step": true,
+ "name": "Docker setup.chmod 0755 RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "docker",
+ "run",
+ "--shm-size=2gb",
+ "--rm",
+ "--mount",
+ "type=bind,source=[START_DIR],target=/SRC",
+ "--mount",
+ "type=bind,source=[START_DIR]/[SWARM_OUT_DIR],target=/OUT",
+ "gcr.io/skia-public/gcc-debian10@sha256:89a72df1e2fdea6f774a3fa4199bb9aaa4a0526a3ac1f233e604d689b694f95c",
+ "/SRC/../RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py",
+ "/SRC",
+ "catchsegv",
+ "/SRC/build/dm",
+ "--some-flag"
+ ],
+ "env": {
+ "CHROME_HEADLESS": "1",
+ "DOCKER_CONFIG": "/home/chrome-bot/.docker",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "name": "symbolized dm in Docker"
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.py b/infra/bots/recipe_modules/flavor/examples/full.py
index bc521df..3c72558 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.py
+++ b/infra/bots/recipe_modules/flavor/examples/full.py
@@ -85,6 +85,8 @@
'Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android_ASAN',
'Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan',
'Test-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All',
+ 'Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker',
+ 'Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker',
'Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Coverage',
'Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-Lottie',
'Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-TSAN',
diff --git a/infra/bots/recipes/test.expected/Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker.json b/infra/bots/recipes/test.expected/Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker.json
new file mode 100644
index 0000000..c273563
--- /dev/null
+++ b/infra/bots/recipes/test.expected/Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker.json
@@ -0,0 +1,392 @@
+[
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/tmp"
+ ],
+ "infra_step": true,
+ "name": "makedirs tmp_dir"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get skp VERSION",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@VERSION@42@@@",
+ "@@@STEP_LOG_END@VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-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",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@SKP_VERSION@42@@@",
+ "@@@STEP_LOG_END@SKP_VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get skimage VERSION",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@VERSION@42@@@",
+ "@@@STEP_LOG_END@VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-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",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@",
+ "@@@STEP_LOG_END@SK_IMAGE_VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get svg VERSION",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@VERSION@42@@@",
+ "@@@STEP_LOG_END@VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-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",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@SVG_VERSION@42@@@",
+ "@@@STEP_LOG_END@SVG_VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[START_DIR]/test"
+ ],
+ "infra_step": true,
+ "name": "rmtree test"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/test"
+ ],
+ "infra_step": true,
+ "name": "makedirs test"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = sys.argv[1]\nRETRIES = 5\nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in range(RETRIES):\n try:\n with contextlib.closing(\n urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n hashes = w.read()\n with open(sys.argv[2], 'w') as f:\n f.write(hashes)\n break\n except Exception as e:\n print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n print e\n if retry == RETRIES:\n raise\n waittime = WAIT_BASE * math.pow(2, retry)\n print 'Retry in %d seconds.' % waittime\n time.sleep(waittime)\n",
+ "https://example.com/hashes.txt",
+ "[START_DIR]/tmp/uninteresting_hashes.txt"
+ ],
+ "env": {
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "infra_step": true,
+ "name": "get uninteresting hashes",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@import contextlib@@@",
+ "@@@STEP_LOG_LINE@python.inline@import math@@@",
+ "@@@STEP_LOG_LINE@python.inline@import socket@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@import time@@@",
+ "@@@STEP_LOG_LINE@python.inline@import urllib2@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@HASHES_URL = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@",
+ "@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@",
+ "@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@",
+ "@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ with contextlib.closing(@@@",
+ "@@@STEP_LOG_LINE@python.inline@ urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ hashes = w.read()@@@",
+ "@@@STEP_LOG_LINE@python.inline@ with open(sys.argv[2], 'w') as f:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ f.write(hashes)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ break@@@",
+ "@@@STEP_LOG_LINE@python.inline@ except Exception as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print e@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if retry == RETRIES:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, retry)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittime@@@",
+ "@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
+ ],
+ "name": "get swarming bot id",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
+ ],
+ "name": "get swarming task id",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Docker setup"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/[SWARM_OUT_DIR]"
+ ],
+ "env": {
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "infra_step": true,
+ "name": "Docker setup.mkdirs out_dir",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "chmod",
+ "777",
+ "[START_DIR]/[SWARM_OUT_DIR]"
+ ],
+ "env": {
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "infra_step": true,
+ "name": "Docker setup.chmod 777 [START_DIR]/[SWARM_OUT_DIR]",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "[START_DIR]"
+ ],
+ "env": {
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "infra_step": true,
+ "name": "Docker setup.chmod 755 [START_DIR]",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "chmod",
+ "0755",
+ "RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py"
+ ],
+ "env": {
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "infra_step": true,
+ "name": "Docker setup.chmod 0755 RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "docker",
+ "run",
+ "--shm-size=2gb",
+ "--rm",
+ "--mount",
+ "type=bind,source=[START_DIR],target=/SRC",
+ "--mount",
+ "type=bind,source=[START_DIR]/[SWARM_OUT_DIR],target=/OUT",
+ "gcr.io/skia-public/gcc-debian10@sha256:89a72df1e2fdea6f774a3fa4199bb9aaa4a0526a3ac1f233e604d689b694f95c",
+ "/SRC/../RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py",
+ "/SRC",
+ "catchsegv",
+ "/SRC/build/dm",
+ "--resourcePath",
+ "/SRC/skia/resources",
+ "--skps",
+ "/SRC/skp",
+ "--images",
+ "/SRC/skimage/dm",
+ "--colorImages",
+ "/SRC/skimage/colorspace",
+ "--nameByHash",
+ "--properties",
+ "gitHash",
+ "abc123",
+ "builder",
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker",
+ "buildbucket_build_id",
+ "123454321",
+ "task_id",
+ "task_12345",
+ "swarming_bot_id",
+ "skia-bot-123",
+ "swarming_task_id",
+ "123456",
+ "--svgs",
+ "/SRC/svg",
+ "--key",
+ "arch",
+ "x86_64",
+ "compiler",
+ "GCC",
+ "configuration",
+ "Debug",
+ "cpu_or_gpu",
+ "CPU",
+ "cpu_or_gpu_value",
+ "AVX2",
+ "extra_config",
+ "Docker",
+ "model",
+ "GCE",
+ "os",
+ "Debian10",
+ "style",
+ "default",
+ "--uninterestingHashesFile",
+ "/SRC/tmp/uninteresting_hashes.txt",
+ "--writePath",
+ "/OUT",
+ "--dont_write",
+ "pdf",
+ "--randomProcessorTest",
+ "--nogpu",
+ "--config",
+ "8888",
+ "--src",
+ "tests",
+ "gm",
+ "image",
+ "colorImage",
+ "--blacklist",
+ "_",
+ "image",
+ "gen_platf",
+ "error",
+ "--nonativeFonts",
+ "--verbose"
+ ],
+ "env": {
+ "CHROME_HEADLESS": "1",
+ "DOCKER_CONFIG": "/home/chrome-bot/.docker",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "name": "symbolized dm in Docker"
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/infra/bots/recipes/test.py b/infra/bots/recipes/test.py
index 65e45d6..ba8d0b6 100644
--- a/infra/bots/recipes/test.py
+++ b/infra/bots/recipes/test.py
@@ -1036,6 +1036,7 @@
'Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader',
'Test-Debian9-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan',
'Test-Debian9-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-Vulkan',
+ 'Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker',
'Test-iOS-Clang-iPhone6-GPU-PowerVRGX6450-arm64-Release-All-Metal',
('Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All'
'-NativeFonts'),
diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json
index eb365d4..f94f638 100755
--- a/infra/bots/tasks.json
+++ b/infra/bots/tasks.json
@@ -1957,6 +1957,26 @@
"Upload-Test-Chromecast-Clang-Chorizo-GPU-Cortex_A7-arm-Release-All"
]
},
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker": {
+ "tasks": [
+ "Upload-Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker"
+ ]
+ },
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker": {
+ "tasks": [
+ "Upload-Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker"
+ ]
+ },
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker": {
+ "tasks": [
+ "Upload-Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker"
+ ]
+ },
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker": {
+ "tasks": [
+ "Upload-Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker"
+ ]
+ },
"Test-Debian9-Clang-GCE-CPU-AVX2-x86-Debug-All": {
"tasks": [
"Upload-Test-Debian9-Clang-GCE-CPU-AVX2-x86-Debug-All"
@@ -30967,6 +30987,326 @@
"test"
]
},
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker": {
+ "caches": [
+ {
+ "name": "vpython",
+ "path": "cache/vpython"
+ }
+ ],
+ "cipd_packages": [
+ {
+ "name": "infra/tools/luci/kitchen/${platform}",
+ "path": ".",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci-auth/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci/vpython/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "skia/bots/skimage",
+ "path": "skimage",
+ "version": "version:40"
+ },
+ {
+ "name": "skia/bots/skp",
+ "path": "skp",
+ "version": "version:214"
+ },
+ {
+ "name": "skia/bots/svg",
+ "path": "svg",
+ "version": "version:9"
+ }
+ ],
+ "command": [
+ "cipd_bin_packages/vpython${EXECUTABLE_SUFFIX}",
+ "skia/infra/bots/run_recipe.py",
+ "${ISOLATED_OUTDIR}",
+ "test",
+ "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker\",\"gold_hashes_url\":\"https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}",
+ "skia"
+ ],
+ "dependencies": [
+ "Housekeeper-PerCommit-BundleRecipes",
+ "Build-Debian10-GCC-x86-Debug-Docker"
+ ],
+ "dimensions": [
+ "cpu:x86-64-Haswell_GCE",
+ "gpu:none",
+ "machine_type:n1-standard-16",
+ "os:Debian-9.8",
+ "pool:Skia",
+ "docker_installed:true"
+ ],
+ "env_prefixes": {
+ "PATH": [
+ "cipd_bin_packages",
+ "cipd_bin_packages/bin"
+ ],
+ "VPYTHON_VIRTUALENV_ROOT": [
+ "cache/vpython"
+ ]
+ },
+ "execution_timeout_ns": 21600000000000,
+ "expiration_ns": 72000000000000,
+ "extra_tags": {
+ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations"
+ },
+ "io_timeout_ns": 21600000000000,
+ "isolate": "test_skia_bundled.isolate",
+ "max_attempts": 2,
+ "outputs": [
+ "test"
+ ]
+ },
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker": {
+ "caches": [
+ {
+ "name": "vpython",
+ "path": "cache/vpython"
+ }
+ ],
+ "cipd_packages": [
+ {
+ "name": "infra/tools/luci/kitchen/${platform}",
+ "path": ".",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci-auth/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci/vpython/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "skia/bots/skimage",
+ "path": "skimage",
+ "version": "version:40"
+ },
+ {
+ "name": "skia/bots/skp",
+ "path": "skp",
+ "version": "version:214"
+ },
+ {
+ "name": "skia/bots/svg",
+ "path": "svg",
+ "version": "version:9"
+ }
+ ],
+ "command": [
+ "cipd_bin_packages/vpython${EXECUTABLE_SUFFIX}",
+ "skia/infra/bots/run_recipe.py",
+ "${ISOLATED_OUTDIR}",
+ "test",
+ "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker\",\"gold_hashes_url\":\"https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}",
+ "skia"
+ ],
+ "dependencies": [
+ "Housekeeper-PerCommit-BundleRecipes",
+ "Build-Debian10-GCC-x86-Release-Docker"
+ ],
+ "dimensions": [
+ "cpu:x86-64-Haswell_GCE",
+ "gpu:none",
+ "machine_type:n1-standard-16",
+ "os:Debian-9.8",
+ "pool:Skia",
+ "docker_installed:true"
+ ],
+ "env_prefixes": {
+ "PATH": [
+ "cipd_bin_packages",
+ "cipd_bin_packages/bin"
+ ],
+ "VPYTHON_VIRTUALENV_ROOT": [
+ "cache/vpython"
+ ]
+ },
+ "execution_timeout_ns": 14400000000000,
+ "expiration_ns": 72000000000000,
+ "extra_tags": {
+ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations"
+ },
+ "io_timeout_ns": 14400000000000,
+ "isolate": "test_skia_bundled.isolate",
+ "max_attempts": 2,
+ "outputs": [
+ "test"
+ ]
+ },
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker": {
+ "caches": [
+ {
+ "name": "vpython",
+ "path": "cache/vpython"
+ }
+ ],
+ "cipd_packages": [
+ {
+ "name": "infra/tools/luci/kitchen/${platform}",
+ "path": ".",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci-auth/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci/vpython/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "skia/bots/skimage",
+ "path": "skimage",
+ "version": "version:40"
+ },
+ {
+ "name": "skia/bots/skp",
+ "path": "skp",
+ "version": "version:214"
+ },
+ {
+ "name": "skia/bots/svg",
+ "path": "svg",
+ "version": "version:9"
+ }
+ ],
+ "command": [
+ "cipd_bin_packages/vpython${EXECUTABLE_SUFFIX}",
+ "skia/infra/bots/run_recipe.py",
+ "${ISOLATED_OUTDIR}",
+ "test",
+ "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker\",\"gold_hashes_url\":\"https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}",
+ "skia"
+ ],
+ "dependencies": [
+ "Housekeeper-PerCommit-BundleRecipes",
+ "Build-Debian10-GCC-x86_64-Debug-Docker"
+ ],
+ "dimensions": [
+ "cpu:x86-64-Haswell_GCE",
+ "gpu:none",
+ "machine_type:n1-standard-16",
+ "os:Debian-9.8",
+ "pool:Skia",
+ "docker_installed:true"
+ ],
+ "env_prefixes": {
+ "PATH": [
+ "cipd_bin_packages",
+ "cipd_bin_packages/bin"
+ ],
+ "VPYTHON_VIRTUALENV_ROOT": [
+ "cache/vpython"
+ ]
+ },
+ "execution_timeout_ns": 14400000000000,
+ "expiration_ns": 72000000000000,
+ "extra_tags": {
+ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations"
+ },
+ "io_timeout_ns": 14400000000000,
+ "isolate": "test_skia_bundled.isolate",
+ "max_attempts": 2,
+ "outputs": [
+ "test"
+ ]
+ },
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker": {
+ "caches": [
+ {
+ "name": "vpython",
+ "path": "cache/vpython"
+ }
+ ],
+ "cipd_packages": [
+ {
+ "name": "infra/tools/luci/kitchen/${platform}",
+ "path": ".",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci-auth/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci/vpython/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "skia/bots/skimage",
+ "path": "skimage",
+ "version": "version:40"
+ },
+ {
+ "name": "skia/bots/skp",
+ "path": "skp",
+ "version": "version:214"
+ },
+ {
+ "name": "skia/bots/svg",
+ "path": "svg",
+ "version": "version:9"
+ }
+ ],
+ "command": [
+ "cipd_bin_packages/vpython${EXECUTABLE_SUFFIX}",
+ "skia/infra/bots/run_recipe.py",
+ "${ISOLATED_OUTDIR}",
+ "test",
+ "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker\",\"gold_hashes_url\":\"https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}",
+ "skia"
+ ],
+ "dependencies": [
+ "Housekeeper-PerCommit-BundleRecipes",
+ "Build-Debian10-GCC-x86_64-Release-Docker"
+ ],
+ "dimensions": [
+ "cpu:x86-64-Haswell_GCE",
+ "gpu:none",
+ "machine_type:n1-standard-16",
+ "os:Debian-9.8",
+ "pool:Skia",
+ "docker_installed:true"
+ ],
+ "env_prefixes": {
+ "PATH": [
+ "cipd_bin_packages",
+ "cipd_bin_packages/bin"
+ ],
+ "VPYTHON_VIRTUALENV_ROOT": [
+ "cache/vpython"
+ ]
+ },
+ "execution_timeout_ns": 14400000000000,
+ "expiration_ns": 72000000000000,
+ "extra_tags": {
+ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations"
+ },
+ "io_timeout_ns": 14400000000000,
+ "isolate": "test_skia_bundled.isolate",
+ "max_attempts": 2,
+ "outputs": [
+ "test"
+ ]
+ },
"Test-Debian9-Clang-GCE-CPU-AVX2-x86-Debug-All": {
"caches": [
{
@@ -62867,6 +63207,270 @@
"max_attempts": 2,
"service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com"
},
+ "Upload-Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker": {
+ "caches": [
+ {
+ "name": "vpython",
+ "path": "cache/vpython"
+ }
+ ],
+ "cipd_packages": [
+ {
+ "name": "infra/tools/luci/kitchen/${platform}",
+ "path": ".",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci-auth/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci/vpython/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/gsutil",
+ "path": "cipd_bin_packages",
+ "version": "version:4.46"
+ }
+ ],
+ "command": [
+ "cipd_bin_packages/vpython${EXECUTABLE_SUFFIX}",
+ "skia/infra/bots/run_recipe.py",
+ "${ISOLATED_OUTDIR}",
+ "upload_dm_results",
+ "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker\",\"gs_bucket\":\"skia-infra-gm\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"output_ignored\",\"task_id\":\"<(TASK_ID)\"}",
+ "skia"
+ ],
+ "dependencies": [
+ "Housekeeper-PerCommit-BundleRecipes",
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker"
+ ],
+ "dimensions": [
+ "cpu:x86-64-Haswell_GCE",
+ "gpu:none",
+ "machine_type:n1-highmem-2",
+ "os:Debian-9.8",
+ "pool:Skia"
+ ],
+ "env_prefixes": {
+ "PATH": [
+ "cipd_bin_packages",
+ "cipd_bin_packages/bin"
+ ],
+ "VPYTHON_VIRTUALENV_ROOT": [
+ "cache/vpython"
+ ]
+ },
+ "execution_timeout_ns": 3600000000000,
+ "extra_tags": {
+ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations"
+ },
+ "io_timeout_ns": 3600000000000,
+ "isolate": "swarm_recipe.isolate",
+ "max_attempts": 2,
+ "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com"
+ },
+ "Upload-Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker": {
+ "caches": [
+ {
+ "name": "vpython",
+ "path": "cache/vpython"
+ }
+ ],
+ "cipd_packages": [
+ {
+ "name": "infra/tools/luci/kitchen/${platform}",
+ "path": ".",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci-auth/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci/vpython/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/gsutil",
+ "path": "cipd_bin_packages",
+ "version": "version:4.46"
+ }
+ ],
+ "command": [
+ "cipd_bin_packages/vpython${EXECUTABLE_SUFFIX}",
+ "skia/infra/bots/run_recipe.py",
+ "${ISOLATED_OUTDIR}",
+ "upload_dm_results",
+ "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker\",\"gs_bucket\":\"skia-infra-gm\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"output_ignored\",\"task_id\":\"<(TASK_ID)\"}",
+ "skia"
+ ],
+ "dependencies": [
+ "Housekeeper-PerCommit-BundleRecipes",
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker"
+ ],
+ "dimensions": [
+ "cpu:x86-64-Haswell_GCE",
+ "gpu:none",
+ "machine_type:n1-highmem-2",
+ "os:Debian-9.8",
+ "pool:Skia"
+ ],
+ "env_prefixes": {
+ "PATH": [
+ "cipd_bin_packages",
+ "cipd_bin_packages/bin"
+ ],
+ "VPYTHON_VIRTUALENV_ROOT": [
+ "cache/vpython"
+ ]
+ },
+ "execution_timeout_ns": 3600000000000,
+ "extra_tags": {
+ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations"
+ },
+ "io_timeout_ns": 3600000000000,
+ "isolate": "swarm_recipe.isolate",
+ "max_attempts": 2,
+ "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com"
+ },
+ "Upload-Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker": {
+ "caches": [
+ {
+ "name": "vpython",
+ "path": "cache/vpython"
+ }
+ ],
+ "cipd_packages": [
+ {
+ "name": "infra/tools/luci/kitchen/${platform}",
+ "path": ".",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci-auth/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci/vpython/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/gsutil",
+ "path": "cipd_bin_packages",
+ "version": "version:4.46"
+ }
+ ],
+ "command": [
+ "cipd_bin_packages/vpython${EXECUTABLE_SUFFIX}",
+ "skia/infra/bots/run_recipe.py",
+ "${ISOLATED_OUTDIR}",
+ "upload_dm_results",
+ "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker\",\"gs_bucket\":\"skia-infra-gm\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"output_ignored\",\"task_id\":\"<(TASK_ID)\"}",
+ "skia"
+ ],
+ "dependencies": [
+ "Housekeeper-PerCommit-BundleRecipes",
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker"
+ ],
+ "dimensions": [
+ "cpu:x86-64-Haswell_GCE",
+ "gpu:none",
+ "machine_type:n1-highmem-2",
+ "os:Debian-9.8",
+ "pool:Skia"
+ ],
+ "env_prefixes": {
+ "PATH": [
+ "cipd_bin_packages",
+ "cipd_bin_packages/bin"
+ ],
+ "VPYTHON_VIRTUALENV_ROOT": [
+ "cache/vpython"
+ ]
+ },
+ "execution_timeout_ns": 3600000000000,
+ "extra_tags": {
+ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations"
+ },
+ "io_timeout_ns": 3600000000000,
+ "isolate": "swarm_recipe.isolate",
+ "max_attempts": 2,
+ "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com"
+ },
+ "Upload-Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker": {
+ "caches": [
+ {
+ "name": "vpython",
+ "path": "cache/vpython"
+ }
+ ],
+ "cipd_packages": [
+ {
+ "name": "infra/tools/luci/kitchen/${platform}",
+ "path": ".",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci-auth/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/tools/luci/vpython/${platform}",
+ "path": "cipd_bin_packages",
+ "version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
+ },
+ {
+ "name": "infra/gsutil",
+ "path": "cipd_bin_packages",
+ "version": "version:4.46"
+ }
+ ],
+ "command": [
+ "cipd_bin_packages/vpython${EXECUTABLE_SUFFIX}",
+ "skia/infra/bots/run_recipe.py",
+ "${ISOLATED_OUTDIR}",
+ "upload_dm_results",
+ "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker\",\"gs_bucket\":\"skia-infra-gm\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"output_ignored\",\"task_id\":\"<(TASK_ID)\"}",
+ "skia"
+ ],
+ "dependencies": [
+ "Housekeeper-PerCommit-BundleRecipes",
+ "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker"
+ ],
+ "dimensions": [
+ "cpu:x86-64-Haswell_GCE",
+ "gpu:none",
+ "machine_type:n1-highmem-2",
+ "os:Debian-9.8",
+ "pool:Skia"
+ ],
+ "env_prefixes": {
+ "PATH": [
+ "cipd_bin_packages",
+ "cipd_bin_packages/bin"
+ ],
+ "VPYTHON_VIRTUALENV_ROOT": [
+ "cache/vpython"
+ ]
+ },
+ "execution_timeout_ns": 3600000000000,
+ "extra_tags": {
+ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations"
+ },
+ "io_timeout_ns": 3600000000000,
+ "isolate": "swarm_recipe.isolate",
+ "max_attempts": 2,
+ "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com"
+ },
"Upload-Test-Debian9-Clang-GCE-CPU-AVX2-x86-Debug-All": {
"caches": [
{