Initial rbe support
1) adds rbe modules for basic functionality
2) enables rbe build in build_util module
3) supports rbe flag from builder recipes
A successful build against rbe based on https://github.com/flutter/engine/pull/45345/files:
https://ci.chromium.org/ui/p/flutter/builders/try.shadow/Linux%20linux_android_debug_engine/16/overview
Change-Id: Id4a41bfe591baf2ba863ff9d0b5a232ffce67f48
Bug: https://github.com/flutter/flutter/issues/132701
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/49541
Reviewed-by: Yusuf Mohsinally <mohsinally@google.com>
Commit-Queue: Keyong Han <keyonghan@google.com>
diff --git a/recipe_modules/build_util/__init__.py b/recipe_modules/build_util/__init__.py
index c28bd69..c1af60e 100644
--- a/recipe_modules/build_util/__init__.py
+++ b/recipe_modules/build_util/__init__.py
@@ -5,6 +5,7 @@
DEPS = [
'depot_tools/depot_tools',
'flutter/goma',
+ 'flutter/rbe',
'recipe_engine/context',
'recipe_engine/platform',
'recipe_engine/properties',
diff --git a/recipe_modules/build_util/api.py b/recipe_modules/build_util/api.py
index bdbbcb8..b99aee1 100644
--- a/recipe_modules/build_util/api.py
+++ b/recipe_modules/build_util/api.py
@@ -14,6 +14,7 @@
def __init__(self, *args, **kwargs):
super(BuildUtilApi, self).__init__(*args, **kwargs)
self.use_goma = True
+ self.use_rbe = False
def run_gn(self, gn_args, checkout_path):
"""Run a gn command with the given arguments.
@@ -23,7 +24,8 @@
checkout_path(Path): A path object with the checkout location.
"""
gn_cmd = ['python3', checkout_path.join('flutter/tools/gn')]
- self.use_goma = False if '--no-goma' in gn_args else True
+ self.use_goma = '--no-goma' not in gn_args
+ self.use_rbe = '--rbe' in gn_args
if self.m.properties.get('no_lto', False) and '--no-lto' not in gn_args:
gn_args += ('--no-lto',)
gn_cmd.extend(gn_args)
@@ -60,13 +62,33 @@
j_value = min(j_value, 800)
return 200 if self._test_data.enabled else j_value
+ def _build_rbe(self, config, checkout_path, targets, tool, rbe_working_path):
+ """Builds using ninja and rbe.
+
+ Args:
+ config(str): A string with the configuration to build.
+ checkout_path(Path): A path object with the checkout location.
+ targets(list): A list of strings with the ninja targets to build.
+ tool(path): Path to the ninja tool.
+ rbe_working_path(path): Path to the rbe working directory.
+ """
+ assert rbe_working_path
+ build_dir = checkout_path.join('out/%s' % config)
+ rbe_jobs = self.m.properties.get('rbe_jobs') or self._calculate_j_value()
+ ninja_args = [tool, '-j', rbe_jobs, '-C', build_dir]
+ ninja_args.extend(targets)
+ with self.m.rbe(working_path=rbe_working_path
+ ), self.m.depot_tools.on_path():
+ name = 'build %s' % ' '.join([config] + list(targets))
+ self.m.step(name, ninja_args)
+
def _build_goma(self, config, checkout_path, targets, tool):
"""Builds using ninja and goma.
Args:
config(str): A string with the configuration to build.
checkout_path(Path): A path object with the checkout location.
- targets(list): A list of string with the ninja targets to build.
+ targets(list): A list of strings with the ninja targets to build.
"""
build_dir = checkout_path.join('out/%s' % config)
goma_jobs = self.m.properties.get('goma_jobs') or self._calculate_j_value()
@@ -93,16 +115,22 @@
name = 'build %s' % ' '.join([config] + list(targets))
self.m.step(name, ninja_args)
- def build(self, config, checkout_path, targets):
+ def build(self, config, checkout_path, targets, rbe_working_path=None):
"""Builds using ninja.
Args:
config(str): A string with the configuration to build.
checkout_path(Path): A path object with the checkout location.
targets(list): A list of string with the ninja targets to build.
+ rbe_working_path(path): Path to rbe working directory.
"""
ninja_path = checkout_path.join('flutter', 'third_party', 'ninja', 'ninja')
- if self.use_goma:
- self._build_goma(config, checkout_path, targets, ninja_path)
+ if self.use_rbe:
+ self._build_rbe(
+ config, checkout_path, targets, ninja_path, rbe_working_path
+ )
else:
- self._build_no_goma(config, checkout_path, targets, ninja_path)
+ if self.use_goma:
+ self._build_goma(config, checkout_path, targets, ninja_path)
+ else:
+ self._build_no_goma(config, checkout_path, targets, ninja_path)
diff --git a/recipe_modules/build_util/examples/full.expected/basic.json b/recipe_modules/build_util/examples/full.expected/basic.json
index ca049ec..6cc3d45 100644
--- a/recipe_modules/build_util/examples/full.expected/basic.json
+++ b/recipe_modules/build_util/examples/full.expected/basic.json
@@ -540,6 +540,490 @@
"name": "build release mytarget"
},
{
+ "cmd": [
+ "python3",
+ "[START_DIR]/flutter/tools/gn",
+ "--no-goma",
+ "--rbe",
+ "--no-lto"
+ ],
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --no-goma --rbe --no-lto"
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[flutter::rbe]/resources/tool_manifest.json",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure reclient.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/reclient\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient.install path/to/reclient",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version"
+ ],
+ "infra_step": true,
+ "name": "ensure reclient.install path/to/reclient.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version",
+ "-ensure-file",
+ "path/to/reclient version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure reclient.install path/to/reclient.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/reclient\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "infra_step": true,
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--re_proxy=[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/reproxy"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "setup remote execution.start reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/flutter/third_party/ninja/ninja",
+ "-j",
+ "5",
+ "-C",
+ "[START_DIR]/out/release",
+ "mytarget"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build release mytarget (2)"
+ },
+ {
+ "cmd": [],
+ "name": "teardown remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--shutdown"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.stop reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/bootstrap.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read bootstrap.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rbe_metrics.txt",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read rbe_metrics.txt",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe",
+ "*.rrpl"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
+ ]
+ },
+ {
"name": "$result"
}
]
\ No newline at end of file
diff --git a/recipe_modules/build_util/examples/full.expected/mac.json b/recipe_modules/build_util/examples/full.expected/mac.json
index 44b500d..51d9299 100644
--- a/recipe_modules/build_util/examples/full.expected/mac.json
+++ b/recipe_modules/build_util/examples/full.expected/mac.json
@@ -540,6 +540,490 @@
"name": "build release mytarget"
},
{
+ "cmd": [
+ "python3",
+ "[START_DIR]/flutter/tools/gn",
+ "--no-goma",
+ "--rbe",
+ "--no-lto"
+ ],
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --no-goma --rbe --no-lto"
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[flutter::rbe]/resources/tool_manifest.json",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure reclient.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/reclient\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient.install path/to/reclient",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version"
+ ],
+ "infra_step": true,
+ "name": "ensure reclient.install path/to/reclient.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version",
+ "-ensure-file",
+ "path/to/reclient version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure reclient.install path/to/reclient.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/reclient\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "infra_step": true,
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--re_proxy=[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/reproxy"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "setup remote execution.start reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/flutter/third_party/ninja/ninja",
+ "-j",
+ "5",
+ "-C",
+ "[START_DIR]/out/release",
+ "mytarget"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build release mytarget (2)"
+ },
+ {
+ "cmd": [],
+ "name": "teardown remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--shutdown"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.stop reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/bootstrap.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read bootstrap.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rbe_metrics.txt",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read rbe_metrics.txt",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe",
+ "*.rrpl"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
+ ]
+ },
+ {
"name": "$result"
}
]
\ No newline at end of file
diff --git a/recipe_modules/build_util/examples/full.expected/win.json b/recipe_modules/build_util/examples/full.expected/win.json
index f1dcfd5..39af6b0 100644
--- a/recipe_modules/build_util/examples/full.expected/win.json
+++ b/recipe_modules/build_util/examples/full.expected/win.json
@@ -551,6 +551,490 @@
"name": "build release mytarget"
},
{
+ "cmd": [
+ "python3",
+ "[START_DIR]\\flutter/tools/gn",
+ "--no-goma",
+ "--rbe",
+ "--no-lto"
+ ],
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --no-goma --rbe --no-lto"
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[flutter::rbe]\\resources\\tool_manifest.json",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure reclient.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/reclient\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient.install path/to/reclient",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]\\cipd_tool\\path\\to\\reclient\\version%3Apinned-version"
+ ],
+ "infra_step": true,
+ "name": "ensure reclient.install path/to/reclient.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd.bat",
+ "ensure",
+ "-root",
+ "[START_DIR]\\cipd_tool\\path\\to\\reclient\\version%3Apinned-version",
+ "-ensure-file",
+ "path/to/reclient version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure reclient.install path/to/reclient.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/reclient\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]\\rbe\\deps"
+ ],
+ "infra_step": true,
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]\\cipd_tool\\path\\to\\reclient\\version%3Apinned-version\\bootstrap",
+ "--re_proxy=[START_DIR]\\cipd_tool\\path\\to\\reclient\\version%3Apinned-version\\reproxy"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]\\rbe\\deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]\\rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]\\rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]\\rbe",
+ "RBE_server_address": "unix://[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "setup remote execution.start reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]\\flutter\\third_party\\ninja\\ninja",
+ "-j",
+ "5",
+ "-C",
+ "[START_DIR]\\out/release",
+ "mytarget"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]\\rbe\\deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]\\rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]\\rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]\\rbe",
+ "RBE_server_address": "unix://[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build release mytarget (2)"
+ },
+ {
+ "cmd": [],
+ "name": "teardown remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]\\cipd_tool\\path\\to\\reclient\\version%3Apinned-version\\bootstrap",
+ "--shutdown"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]\\rbe\\deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]\\rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]\\rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]\\rbe",
+ "RBE_server_address": "unix://[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.stop reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]\\rbe\\bootstrap.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]\\rbe\\deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]\\rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]\\rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]\\rbe",
+ "RBE_server_address": "unix://[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read bootstrap.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]\\rbe\\rbe_metrics.txt",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]\\rbe\\deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]\\rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]\\rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]\\rbe",
+ "RBE_server_address": "unix://[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read rbe_metrics.txt",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]\\rbe\\reproxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]\\rbe\\deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]\\rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]\\rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]\\rbe",
+ "RBE_server_address": "unix://[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]\\rbe\\reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]\\rbe\\deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]\\rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]\\rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]\\rbe",
+ "RBE_server_address": "unix://[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]\\rbe\\reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]\\rbe\\deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]\\rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]\\rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]\\rbe",
+ "RBE_server_address": "unix://[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]\\rbe\\rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]\\rbe\\deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]\\rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]\\rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]\\rbe",
+ "RBE_server_address": "unix://[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]\\rbe",
+ "*.rrpl"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]\\rbe\\deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]\\rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]\\rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]\\rbe",
+ "RBE_server_address": "unix://[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]\\rbe\\reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]\\rbe\\reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]\\rbe\\deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]\\rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]\\rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]\\rbe",
+ "RBE_server_address": "unix://[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]\\rbe\\reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
+ ]
+ },
+ {
"name": "$result"
}
]
\ No newline at end of file
diff --git a/recipe_modules/build_util/examples/full.py b/recipe_modules/build_util/examples/full.py
index 8d14350..da1930d 100644
--- a/recipe_modules/build_util/examples/full.py
+++ b/recipe_modules/build_util/examples/full.py
@@ -22,6 +22,13 @@
with api.context(env_prefixes=env_prefixes):
api.build_util.run_gn(['--no-goma'], checkout)
api.build_util.build('release', checkout, ['mytarget'])
+ with api.context(env_prefixes=env_prefixes):
+ api.build_util.run_gn(['--no-goma', '--rbe'], checkout)
+ api.build_util.build(
+ 'release',
+ checkout, ['mytarget'],
+ rbe_working_path=api.path["cleanup"].join("rbe")
+ )
def GenTests(api):
diff --git a/recipe_modules/rbe/__init__.py b/recipe_modules/rbe/__init__.py
new file mode 100644
index 0000000..6a6a1bb
--- /dev/null
+++ b/recipe_modules/rbe/__init__.py
@@ -0,0 +1,19 @@
+# Copyright 2021 The Fuchsia 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 PB.recipe_modules.flutter.rbe.properties import InputProperties
+
+DEPS = [
+ "fuchsia/ensure_tool",
+ "recipe_engine/buildbucket",
+ "recipe_engine/context",
+ "recipe_engine/file",
+ "recipe_engine/json",
+ "recipe_engine/path",
+ "recipe_engine/runtime",
+ "recipe_engine/step",
+ "recipe_engine/time",
+]
+
+PROPERTIES = InputProperties
diff --git a/recipe_modules/rbe/api.py b/recipe_modules/rbe/api.py
new file mode 100644
index 0000000..8c114b8
--- /dev/null
+++ b/recipe_modules/rbe/api.py
@@ -0,0 +1,262 @@
+# Copyright 2021 The Fuchsia 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 enum import Enum
+from contextlib import contextmanager
+
+from recipe_engine import recipe_api
+
+RECLIENT_CXX_WRAPPER = "reclient-cxx-wrapper.sh"
+
+# For builds using the goma input processor, sometimes the deps cache file is
+# too big for the default setting. So just set the max file size permitted to
+# be large enough.
+_DEPS_CACHE_MAX_MB = "512"
+
+
+class RbeApi(recipe_api.RecipeApi):
+ """RemoteExecutionApi contains helper functions for using remote execution
+ services via re-client/re-proxy."""
+
+ class AbsolutePathPolicy(Enum):
+ """This controls how absolute paths are to be treated.
+
+ The choice impacts how reproxy and rewrapper are invoked.
+
+ Choices:
+ REJECT: remote commands using local absolute paths will fail.
+ rewrapper --canonicalize_working_dir=true.
+ This allows cache sharing between different build output
+ directories (under exec_root) at the same depth.
+ reproxy: no InputPathAbsoluteRoot
+
+ RELATIVIZE: rewrite commands using relative paths, using a wrapper.
+ Relative paths are remote-execution friendly, while absolute paths
+ will likely fail. cmake builds are known to use absolute paths.
+ Relativized commands are better for caching across build
+ environments, but the wrapper script incurs some overhead.
+ rewrapper --canonicalize_working_dir=true.
+ reproxy: no InputPathAbsoluteRoot
+
+ ALLOW: Force the remote environment to mimic local paths.
+ This allows commands with absolute paths to work,
+ at the expense of being able to cache across build environments.
+ This option can help cmake builds work remotely.
+ rewrapper --canonicalize_working_dir=false.
+ reproxy: --platform InputPathAbsoluteRoot=exec_root
+ """
+
+ REJECT = 1
+ RELATIVIZE = 2
+ ALLOW = 3
+
+ def __init__(self, props, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+
+ self._reclient_path = None
+ self._platform = props.platform
+ self._instance = props.instance
+
+ # Default: let commands that use absolute paths fail remote execution.
+ # For best caching performance, restrict remote execution commands
+ # to use only relative paths.
+ self._absolute_path_policy = self.AbsolutePathPolicy.REJECT
+
+ if not self._platform and self._test_data.enabled:
+ self._platform = "fake_rbe_platform"
+ if not self._instance and self._test_data.enabled:
+ self._instance = "fake_rbe_instance"
+ self._log_format = props.log_format or "reducedtext"
+ self._started = False
+
+ @contextmanager
+ def __call__(
+ self,
+ reclient_path=None,
+ config_path=None,
+ working_path=None,
+ absolute_path_policy=AbsolutePathPolicy.REJECT,
+ ):
+ """Make context wrapping reproxy start/stop.
+
+ Args:
+ reclient_path (Path): if set, use this Path to reclient tools,
+ otherwise, automatically use the Path to a loaded CIPD package.
+ config_path (Path): The config file within the checkout.
+ In the case of a Fuchsia checkout, this should be set to the path
+ referenced by $FUCHSIA_OUT_DIR/rbe_config.json as reported by
+ `gn gen`.
+ absolute_path_policy (AbsolutePathPolicy): See enum definition.
+
+ Raises:
+ StepFailure or InfraFailure if it fails to start/stop.
+ """
+ if reclient_path:
+ self._reclient_path = reclient_path
+ else:
+ self._reclient_path = self._ensure_reclient_path
+
+ assert self._reclient_path
+ assert self._instance, "No RBE backend in builder properties."
+
+ # Save current value of infra_step so we can reset it when we
+ # yield back.
+ is_infra_step = self.m.context.infra_step
+
+ # Separate invocations of RBE tools should use unique paths to avoid
+ # conflicts between log/metric files.
+ working_dir = working_path
+
+ saved_absolute_path_policy = self._absolute_path_policy
+ self._absolute_path_policy = absolute_path_policy
+
+ with self.m.context(env=self._environment(working_dir), infra_steps=True):
+ try:
+ self._start(config_path=config_path)
+ with self.m.context(infra_steps=is_infra_step):
+ yield
+ finally:
+ if not self.m.runtime.in_global_shutdown:
+ self._stop(working_dir=working_dir, config_path=config_path)
+ self._absolute_path_policy = saved_absolute_path_policy
+
+ @property
+ def _ensure_reclient_path(self):
+ return self.m.ensure_tool(
+ "reclient", self.resource("tool_manifest.json"), executable_path=""
+ )
+
+ @property
+ def _bootstrap_path(self):
+ assert self._reclient_path
+ return self._reclient_path.join("bootstrap")
+
+ def _environment(self, working_dir):
+ cache_dir = self.m.path["cache"].join("rbe")
+ deps_cache_dir = cache_dir.join("deps")
+ self.m.file.ensure_directory("create rbe cache dir", deps_cache_dir)
+ # Environment. The source of truth for remote execution configuration
+ # is the Fuchsia tree (see $FUCHSIA_OUT_DIR/rbe_config.json). These
+ # values are used to modify the configuration in Infrastructure when
+ # appropriate. These should not be used to modify the behavior of the
+ # build in a meaningful way.
+ return {
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ # TODO(fangism): sync docker image with that used in Fuchsia
+ "RBE_platform": self._platform,
+ # Override default instance. Infrastructure uses different RBE
+ # backends for different environments.
+ "RBE_instance": self._instance,
+ # Set deps cache path.
+ "RBE_enable_deps_cache": "true",
+ "RBE_cache_dir": deps_cache_dir,
+ "RBE_deps_cache_max_mb": _DEPS_CACHE_MAX_MB,
+ # Set preferred log format for reproxy.
+ "RBE_log_format": self._log_format,
+ # Set log paths within the task working directory.
+ "RBE_log_dir": working_dir,
+ "RBE_output_dir": working_dir,
+ "RBE_proxy_log_dir": working_dir,
+ "RBE_server_address": f"unix://{working_dir.join('reproxy.sock')}",
+ "RBE_socket_path": working_dir.join("reproxy.sock"),
+ # Use GCE credentials by default. Infrastructure presents an
+ # emulated GCE metadata server in all environments for uniformity.
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ }
+
+ @property
+ def _reproxy_path(self):
+ assert self._reclient_path
+ return self._reclient_path.join("reproxy")
+
+ def _start(self, config_path):
+ """Start reproxy."""
+ assert not self._started
+
+ with self.m.step.nest("setup remote execution"):
+ cmd = [self._bootstrap_path, f"--re_proxy={self._reproxy_path}"]
+ if config_path:
+ cmd += [f"--cfg={config_path}"]
+ self.m.step("start reproxy", cmd)
+ self._started = True
+
+ def _stop(self, working_dir, config_path):
+ """Stop reproxy."""
+ with self.m.step.nest("teardown remote execution"):
+ cmd = [self._bootstrap_path, "--shutdown"]
+ if config_path:
+ cmd += [f"--cfg={config_path}"]
+ try:
+ self.m.step("stop reproxy", cmd)
+ self._started = False
+ finally:
+ # reproxy/rewrapper/bootstrap record various log information in
+ # a number of locations. At the time of this implementation,
+ # the following log files are used:
+ # 1. bootstrap.<INFO|WARNING|ERROR|FATAL> is standard logging
+ # for `bootstrap`. Each log file includes more severe logging
+ # levels, e.g. bootstrap.WARNING includes WARNING, ERROR & FATAL
+ # log messages.
+ # 2. rbe_metrics.txt is the text representation of a proto
+ # message that describes metrics related to the rbe execution.
+ # 3. reproxy.<INFO|WARNING|ERROR|FATAL> is standard logging for
+ # `reproxy`. See notes in #1 for more details.
+ # 4. reproxy_log.txt is the log file that records all info
+ # about all actions that are processed through reproxy.
+ # 5. reproxy_outerr.log is merged stderr/stdout of `reproxy`.
+ # 6. rewrapper.<INFO|WARNING|ERROR|FATAL> is standard logging
+ # for `rewrapper`. See notes in #1 for more details.
+ # 7. reproxy-gomaip.<INFO|WARNING|ERROR|FATAL> is logging
+ # for `gomaip` which is the input processor used by `reclient`
+ # for finding dependencies of `clang` compile invocations.
+ #
+ # We extract the WARNING log messages for each portion of the
+ # local rbe client as well as reproxy stdout/stderr and metrics
+ # from the build by default. If further debugging is required,
+ # you could increase the verbosity of log messages that we
+ # retain in logdog or add the full reproxy_log.txt log file to
+ # the list of outputs.
+ diagnostic_outputs = [
+ "bootstrap.WARNING",
+ "rbe_metrics.txt",
+ "reproxy.WARNING",
+ "reproxy-gomaip.WARNING",
+ "reproxy_outerr.log",
+ "rewrapper.WARNING",
+ ]
+
+ for output in diagnostic_outputs:
+ path = working_dir.join(output)
+ # Not all builds use rbe, so it might not exist.
+ self.m.path.mock_add_paths(path)
+ if self.m.path.exists(path):
+ # Read the log so it shows up in Milo for debugging.
+ self.m.file.read_text(f"read {output}", path)
+
+ # reproxy also produces a log file of all the actions which
+ # it handles including more detailed debugging information
+ # useful for debugging.
+ rpl_ext = {
+ "text": "rpl",
+ "reducedtext": "rrpl",
+ }[self._log_format]
+ rpl_file_glob = f"*.{rpl_ext}"
+ rpl_paths = self.m.file.glob_paths(
+ name=f"find {rpl_ext} files",
+ source=working_dir,
+ pattern=rpl_file_glob,
+ test_data=[
+ f"reproxy_2021-10-16_22_52_23.{rpl_ext}",
+ ],
+ )
+
+ # More than 1 rpl file is likely a bug but we can punt until
+ # that breaks someone.
+ for p in rpl_paths:
+ self.m.path.mock_add_paths(p)
+ # Not all builds use rbe, so it might not exist.
+ if self.m.path.exists(p):
+ # Read the log so it shows up in Milo for debugging.
+ self.m.file.read_text(f"read {self.m.path.basename(p)}", p)
diff --git a/recipe_modules/rbe/properties.proto b/recipe_modules/rbe/properties.proto
new file mode 100644
index 0000000..fd425d8
--- /dev/null
+++ b/recipe_modules/rbe/properties.proto
@@ -0,0 +1,22 @@
+// Copyright 2021 The Fuchsia Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+syntax = "proto3";
+
+package recipe_modules.flutter.rbe;
+
+message InputProperties {
+ // Remote execution instance.
+ // This takes the form of:
+ // projects/<gcp project name>/instances/<rbe instance name>
+ string instance = 1;
+
+ // Reproxy log format.
+ // This can be either "text" or "reducedtext" in infrastructure.
+ // Default is "reducedtext", override to "text" if more Information
+ // is needed from a builder.
+ string log_format = 2;
+
+ // Platform specification, including docker image.
+ string platform = 3;
+}
diff --git a/recipe_modules/rbe/rbe_metrics.proto b/recipe_modules/rbe/rbe_metrics.proto
new file mode 100644
index 0000000..7f10e74
--- /dev/null
+++ b/recipe_modules/rbe/rbe_metrics.proto
@@ -0,0 +1,28 @@
+// Copyright 2021 The Fuchsia Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+syntax = "proto3";
+
+package recipe_modules.flutter.rbe;
+
+import "google/protobuf/timestamp.proto";
+import "go.fuchsia.dev/foundry-x/re-client/api/stats/stats.proto";
+
+// Schema for RBE metrics.
+// Next field number: 6
+message RbeMetrics {
+ // Buildbucket id.
+ string build_id = 1;
+
+ // Buildbucket builder name.
+ string builder_name = 2;
+
+ // Upload time.
+ google.protobuf.Timestamp created_at = 3;
+
+ // RBE instance.
+ string instance = 4;
+
+ // RBE metrics.
+ stats.Stats stats = 5;
+}
diff --git a/recipe_modules/rbe/resources/relativize_args.py b/recipe_modules/rbe/resources/relativize_args.py
new file mode 100755
index 0000000..64ec5e8
--- /dev/null
+++ b/recipe_modules/rbe/resources/relativize_args.py
@@ -0,0 +1,186 @@
+#!/usr/bin/env python3.8
+# Copyright 2022 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Relativize shell command arguments to be relative.
+
+This script helps convert commands with absolute paths to equivalent
+commands using relative paths. Paths are transformed blindly without
+verifying existence or validity.
+This helps reclient gather arguments under a common --exec_root directory.
+Note, however, that this script is unaware of exec_root; it is the
+responsibility of the invoker to make sure all path arguments fall
+under a common exec_root.
+
+NOTE: This file is copied over from fuchsia.git:build/rbe/relativize_args.py
+which also comes with unit-tests.
+"""
+
+import argparse
+import os
+import subprocess
+import sys
+from pathlib import Path
+from typing import Callable, Sequence
+
+_SCRIPT_BASENAME = os.path.basename(__file__)
+
+
+def msg(text: str):
+ print(f"[{_SCRIPT_BASENAME}] {text}")
+
+
+def split_transform_join(
+ token: str, sep: str, transform: Callable[[str], str]
+) -> str:
+ return sep.join(transform(x) for x in token.split(sep))
+
+
+def lexically_rewrite_token(token: str, transform: Callable[[str], str]) -> str:
+ """Lexically replaces substrings between delimiters.
+
+ This is useful for transforming substrings of text.
+
+ This can transform "--foo=bar,baz" into
+ f("--foo") + "=" + f("bar") + "," + f("baz")
+
+ Args:
+ token: text to transform, like a shell token.
+ transform: text transformation.
+
+ Returns:
+ text with substrings transformed.
+ """
+
+ def inner_transform(text: str) -> str:
+ return split_transform_join(text, ",", transform)
+
+ return split_transform_join(token, "=", inner_transform)
+
+
+def greatest_path_parent(p: Path) -> Path:
+ assert p.is_absolute()
+ return Path(*p.parts[:2]) # keep the leading '/' and the first component
+
+
+def relativize_path(arg: str, start: Path) -> str:
+ """Convert a path or path substring to relative.
+
+ Args:
+ arg: string that is a path or may contain a path.
+ start: result paths are relative to this directory (absolute).
+
+ Returns:
+ possibly transformed arg with relative paths.
+ """
+ start_abs = start.absolute()
+ # Handle known compiler flags like -I/abs/path, -L/abs/path
+ # Such flags are fused to their arguments without a delimiter.
+ for flag in ("-I", "-L", "-isystem"):
+ if arg.startswith(flag):
+ suffix = arg[len(flag):]
+ return flag + relativize_path(suffix, start=start_abs)
+
+ try_path = Path(arg)
+ # Windows-style flags look like absolute paths, e.g. /Foo
+ # so we leave those alone by checking for existence.
+ # Only check the existence of the greatest parent, because some paths
+ # may refer to outputs that do not exist yet.
+ if try_path.is_absolute() and greatest_path_parent(try_path).exists():
+ # Can't use Path.relative_to() because arguments
+ # aren't guaranteed to be subdir of the other.
+ return os.path.relpath(arg, start=start_abs)
+
+ return arg
+
+
+def relativize_command(command: Sequence[str],
+ working_dir: Path) -> Sequence[str]:
+ """Transform a command to use relative paths.
+
+ Args:
+ command: the command to transform, sequence of shell tokens.
+ working_dir: result paths are relative to this (absolute).
+
+ Returns:
+ command using relative paths
+ """
+ relativized_command = []
+ # Subprocess calls do not work for commands that start with VAR=VALUE
+ # environment variables, which is remedied by prefixing with 'env'.
+ if command and "=" in command[0]:
+ relativized_command += ["/usr/bin/env"]
+
+ relativized_command += [
+ lexically_rewrite_token(tok, lambda x: relativize_path(x, working_dir))
+ for tok in command
+ ]
+
+ return relativized_command
+
+
+def main_arg_parser() -> argparse.ArgumentParser:
+ """Construct the argument parser, called by main()."""
+ parser = argparse.ArgumentParser(
+ description="Transforms a command to use relative paths.",
+ argument_default=[],
+ )
+ parser.add_argument(
+ "--verbose",
+ action="store_true",
+ default=False,
+ help="Print information rewritten command.",
+ )
+ parser.add_argument(
+ "--dry-run",
+ action="store_true",
+ default=False,
+ help="Show transformed command and exit.",
+ )
+ parser.add_argument(
+ "--cwd",
+ type=Path,
+ default=Path(os.curdir),
+ help="Override the current working dir for relative paths.",
+ )
+ parser.add_argument(
+ "--disable",
+ action="store_false",
+ dest="enable",
+ default=True,
+ help="If disabled, run the original command as-is.",
+ )
+
+ # Positional args are the command and arguments to run.
+ parser.add_argument("command", nargs="*", help="The command to run")
+ return parser
+
+
+def main(argv: Sequence[str]) -> None:
+ parser = main_arg_parser()
+ args = parser.parse_args(argv)
+
+ command = args.command
+ relativized_command = relativize_command(
+ command=command, working_dir=args.cwd
+ )
+
+ cmd_str = " ".join(relativized_command)
+ if args.verbose or args.dry_run:
+ msg(f"Relativized command: {cmd_str}")
+
+ if args.dry_run:
+ return 0
+
+ if not args.enable:
+ return subprocess.call(command)
+
+ exit_code = subprocess.call(relativized_command)
+ if exit_code != 0:
+ msg(f"*** Relativized command failed (exit={exit_code}): {cmd_str}")
+ return exit_code
+
+
+if __name__ == "__main__":
+ sys.exit(main(sys.argv[1:]))
diff --git a/recipe_modules/rbe/resources/tool_manifest.json b/recipe_modules/rbe/resources/tool_manifest.json
new file mode 100644
index 0000000..a3f9bfe
--- /dev/null
+++ b/recipe_modules/rbe/resources/tool_manifest.json
@@ -0,0 +1,4 @@
+{
+ "path": "infra/rbe/client/${platform}",
+ "version": "re_client_version:0.111.0.1ccaa23-gomaip"
+}
\ No newline at end of file
diff --git a/recipe_modules/rbe/tests/full.expected/basic.json b/recipe_modules/rbe/tests/full.expected/basic.json
new file mode 100644
index 0000000..d38eca2
--- /dev/null
+++ b/recipe_modules/rbe/tests/full.expected/basic.json
@@ -0,0 +1,1158 @@
+[
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution"
+ },
+ {
+ "cmd": [
+ "[CLEANUP]/rbe/bootstrap",
+ "--re_proxy=[CLEANUP]/rbe/reproxy"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "setup remote execution.start reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "echo",
+ "Mission Complete!"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "build"
+ },
+ {
+ "cmd": [],
+ "name": "teardown remote execution"
+ },
+ {
+ "cmd": [
+ "[CLEANUP]/rbe/bootstrap",
+ "--shutdown"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.stop reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/bootstrap.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read bootstrap.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rbe_metrics.txt",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read rbe_metrics.txt",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe",
+ "*.rrpl"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[flutter::rbe]/resources/tool_manifest.json",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/reclient\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient.install path/to/reclient",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version",
+ "-ensure-file",
+ "path/to/reclient version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/reclient\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "create rbe cache dir (2)"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution (2)"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--re_proxy=[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/reproxy",
+ "--cfg=[CLEANUP]/configs"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "setup remote execution (2).start reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "echo",
+ "Misison Accomplished!"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "build (2)"
+ },
+ {
+ "cmd": [],
+ "name": "teardown remote execution (2)"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--shutdown",
+ "--cfg=[CLEANUP]/configs"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).stop reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/bootstrap.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read bootstrap.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rbe_metrics.txt",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read rbe_metrics.txt",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read reproxy.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe",
+ "*.rrpl"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
+ ]
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/rbe/tests/full.expected/read_log_proto_failure_does_not_block.json b/recipe_modules/rbe/tests/full.expected/read_log_proto_failure_does_not_block.json
new file mode 100644
index 0000000..d38eca2
--- /dev/null
+++ b/recipe_modules/rbe/tests/full.expected/read_log_proto_failure_does_not_block.json
@@ -0,0 +1,1158 @@
+[
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution"
+ },
+ {
+ "cmd": [
+ "[CLEANUP]/rbe/bootstrap",
+ "--re_proxy=[CLEANUP]/rbe/reproxy"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "setup remote execution.start reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "echo",
+ "Mission Complete!"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "build"
+ },
+ {
+ "cmd": [],
+ "name": "teardown remote execution"
+ },
+ {
+ "cmd": [
+ "[CLEANUP]/rbe/bootstrap",
+ "--shutdown"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.stop reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/bootstrap.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read bootstrap.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rbe_metrics.txt",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read rbe_metrics.txt",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe",
+ "*.rrpl"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[flutter::rbe]/resources/tool_manifest.json",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/reclient\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient.install path/to/reclient",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version",
+ "-ensure-file",
+ "path/to/reclient version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/reclient\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "create rbe cache dir (2)"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution (2)"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--re_proxy=[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/reproxy",
+ "--cfg=[CLEANUP]/configs"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "setup remote execution (2).start reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "echo",
+ "Misison Accomplished!"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "build (2)"
+ },
+ {
+ "cmd": [],
+ "name": "teardown remote execution (2)"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--shutdown",
+ "--cfg=[CLEANUP]/configs"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).stop reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/bootstrap.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read bootstrap.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rbe_metrics.txt",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read rbe_metrics.txt",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read reproxy.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe",
+ "*.rrpl"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution (2).read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
+ ]
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/rbe/tests/full.expected/start_rbe_failed.json b/recipe_modules/rbe/tests/full.expected/start_rbe_failed.json
new file mode 100644
index 0000000..e01b144
--- /dev/null
+++ b/recipe_modules/rbe/tests/full.expected/start_rbe_failed.json
@@ -0,0 +1,362 @@
+[
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "infra_step": true,
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution",
+ "~followup_annotations": [
+ "@@@STEP_EXCEPTION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CLEANUP]/rbe/bootstrap",
+ "--re_proxy=[CLEANUP]/rbe/reproxy"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "setup remote execution.start reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_EXCEPTION@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "teardown remote execution"
+ },
+ {
+ "cmd": [
+ "[CLEANUP]/rbe/bootstrap",
+ "--shutdown"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.stop reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/bootstrap.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read bootstrap.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rbe_metrics.txt",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read rbe_metrics.txt",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe",
+ "*.rrpl"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
+ ]
+ },
+ {
+ "failure": {
+ "humanReason": "Infra Failure: Step('setup remote execution.start reproxy') (retcode: 1)"
+ },
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/rbe/tests/full.expected/stop_rbe_failed.json b/recipe_modules/rbe/tests/full.expected/stop_rbe_failed.json
new file mode 100644
index 0000000..3b61d3b
--- /dev/null
+++ b/recipe_modules/rbe/tests/full.expected/stop_rbe_failed.json
@@ -0,0 +1,385 @@
+[
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "infra_step": true,
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution"
+ },
+ {
+ "cmd": [
+ "[CLEANUP]/rbe/bootstrap",
+ "--re_proxy=[CLEANUP]/rbe/reproxy"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "setup remote execution.start reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "echo",
+ "Mission Complete!"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "name": "build"
+ },
+ {
+ "cmd": [],
+ "name": "teardown remote execution",
+ "~followup_annotations": [
+ "@@@STEP_EXCEPTION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CLEANUP]/rbe/bootstrap",
+ "--shutdown"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.stop reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_EXCEPTION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/bootstrap.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read bootstrap.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rbe_metrics.txt",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read rbe_metrics.txt",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe",
+ "*.rrpl"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe",
+ "RBE_server_address": "unix://[CLEANUP]/rbe/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true"
+ },
+ "infra_step": true,
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
+ ]
+ },
+ {
+ "failure": {
+ "humanReason": "Infra Failure: Step('teardown remote execution.stop reproxy') (retcode: 1)"
+ },
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/rbe/tests/full.py b/recipe_modules/rbe/tests/full.py
new file mode 100644
index 0000000..fcece09
--- /dev/null
+++ b/recipe_modules/rbe/tests/full.py
@@ -0,0 +1,55 @@
+# Copyright 2021 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 PB.recipe_modules.flutter.rbe.properties import InputProperties
+
+DEPS = [
+ "flutter/rbe",
+ "recipe_engine/buildbucket",
+ "recipe_engine/file",
+ "recipe_engine/path",
+ "recipe_engine/properties",
+ "recipe_engine/step",
+]
+
+
+def RunSteps(api):
+ with api.rbe(reclient_path=api.path["cleanup"].join("rbe"),
+ working_path=api.path["cleanup"].join("rbe")):
+ # build something using rbe.
+ api.step("build", ["echo", "Mission Complete!"])
+
+ with api.rbe(config_path=api.path["cleanup"].join("configs"),
+ working_path=api.path["cleanup"].join("rbe")):
+ # build something using rbe.
+ api.step("build", ["echo", "Misison Accomplished!"])
+
+
+def GenTests(api):
+
+ def rbe_properties(**kwargs):
+ kwargs.setdefault("instance", "projects/fuchsia-infra/instance/default")
+ kwargs.setdefault(
+ "platform",
+ "container-image=docker://gcr.io/cloud-marketplace/google/debian11@sha256:69e2789c9f3d28c6a0f13b25062c240ee7772be1f5e6d41bb4680b63eae6b304",
+ )
+ props = api.properties(**{"$fuchsia/rbe": InputProperties(**kwargs)}
+ ) + api.buildbucket.try_build(
+ project="test", builder="test"
+ )
+ return props
+
+ yield (api.test("basic") + rbe_properties())
+
+ yield (
+ api.test("start_rbe_failed", status="INFRA_FAILURE") +
+ api.step_data("setup remote execution.start reproxy", retcode=1)
+ )
+
+ yield (
+ api.test("stop_rbe_failed", status="INFRA_FAILURE") +
+ api.step_data("teardown remote execution.stop reproxy", retcode=1)
+ )
+
+ yield (api.test("read_log_proto_failure_does_not_block") + rbe_properties())
diff --git a/recipes/engine_v2/builder.expected/basic.json b/recipes/engine_v2/builder.expected/basic.json
index c8fdf70..80af240 100644
--- a/recipes/engine_v2/builder.expected/basic.json
+++ b/recipes/engine_v2/builder.expected/basic.json
@@ -653,7 +653,9 @@
"cmd": [
"python3",
"[CACHE]/builder/src/flutter/tools/gn",
- "--ios"
+ "--ios",
+ "--rbe",
+ "--rbe-server-address=unix://[CLEANUP]/rbe_tmp_1/reproxy.sock"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
@@ -698,7 +700,7 @@
"hostname": "rdbhost"
}
},
- "name": "gn --ios"
+ "name": "gn --ios --rbe --rbe-server-address=unix://[CLEANUP]/rbe_tmp_1/reproxy.sock"
},
{
"cmd": [],
@@ -1218,13 +1220,18 @@
},
{
"cmd": [],
- "name": "setup goma (2)"
+ "name": "ensure reclient"
},
{
"cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "restart"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[flutter::rbe]/resources/tool_manifest.json",
+ "/path/to/tmp/json"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
@@ -1234,16 +1241,6 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
"ENGINE_PATH": "[CACHE]/builder",
"GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
@@ -1269,7 +1266,239 @@
"hostname": "rdbhost"
}
},
- "name": "setup goma (2).start goma",
+ "name": "ensure reclient.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/reclient\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient.install path/to/reclient",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version",
+ "-ensure-file",
+ "path/to/reclient version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/reclient\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--re_proxy=[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/reproxy"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "setup remote execution.start reproxy",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -1290,13 +1519,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
"ENGINE_PATH": "[CACHE]/builder",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
},
"env_prefixes": {
@@ -1328,14 +1569,12 @@
},
{
"cmd": [],
- "name": "teardown goma (2)"
+ "name": "teardown remote execution"
},
{
"cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "jsonstatus",
- "/path/to/tmp/json"
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--shutdown"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
@@ -1345,21 +1584,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
"ENGINE_PATH": "[CACHE]/builder",
"GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
},
"env_prefixes": {
@@ -1380,119 +1623,7 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).goma jsonstatus",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_LOG_LINE@json.output@{@@@",
- "@@@STEP_LOG_LINE@json.output@ \"foo\": \"bar\"@@@",
- "@@@STEP_LOG_LINE@json.output@}@@@",
- "@@@STEP_LOG_END@json.output@@@"
- ]
- },
- {
- "cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "stat"
- ],
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
- "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
- "ENGINE_PATH": "[CACHE]/builder",
- "GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "LUCI_WORKDIR": "[START_DIR]",
- "OS": "linux",
- "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "infra_step": true,
- "luci_context": {
- "realm": {
- "name": "flutter:prod"
- },
- "resultdb": {
- "current_invocation": {
- "name": "invocations/build:8945511751514863184",
- "update_token": "token"
- },
- "hostname": "rdbhost"
- }
- },
- "name": "teardown goma (2).goma stats",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "stop"
- ],
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
- "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
- "ENGINE_PATH": "[CACHE]/builder",
- "GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "LUCI_WORKDIR": "[START_DIR]",
- "OS": "linux",
- "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "infra_step": true,
- "luci_context": {
- "realm": {
- "name": "flutter:prod"
- },
- "resultdb": {
- "current_invocation": {
- "name": "invocations/build:8945511751514863184",
- "update_token": "token"
- },
- "hostname": "rdbhost"
- }
- },
- "name": "teardown goma (2).stop goma",
+ "name": "teardown remote execution.stop reproxy",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -1505,7 +1636,7 @@
"--json-output",
"/path/to/tmp/json",
"copy",
- "[CLEANUP]/compiler_proxy.WARNING",
+ "[CLEANUP]/rbe_tmp_1/bootstrap.WARNING",
"/path/to/tmp/"
],
"env": {
@@ -1516,13 +1647,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
"ENGINE_PATH": "[CACHE]/builder",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
},
"env_prefixes": {
@@ -1543,11 +1686,10 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).read goma_client warning log",
+ "name": "teardown remote execution.read bootstrap.WARNING",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
- "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
]
},
{
@@ -1558,7 +1700,7 @@
"--json-output",
"/path/to/tmp/json",
"copy",
- "[CACHE]/goma/client/goma_stats.json",
+ "[CLEANUP]/rbe_tmp_1/rbe_metrics.txt",
"/path/to/tmp/"
],
"env": {
@@ -1569,13 +1711,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
"ENGINE_PATH": "[CACHE]/builder",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
},
"env_prefixes": {
@@ -1596,25 +1750,22 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).read goma_stats.json",
+ "name": "teardown remote execution.read rbe_metrics.txt",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_LOG_LINE@json.output@{@@@",
- "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
- "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184,@@@",
- "@@@STEP_LOG_LINE@json.output@ \"builder\": \"linux-host\",@@@",
- "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:24.500000\",@@@",
- "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000006000@@@",
- "@@@STEP_LOG_LINE@json.output@ }@@@",
- "@@@STEP_LOG_LINE@json.output@}@@@",
- "@@@STEP_LOG_END@json.output@@@"
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
]
},
{
"cmd": [
- "[START_DIR]/cipd_tool/path/to/bqupload/version%3Apinned-version/bqupload",
- "fuchsia-infra.artifacts.builds_beta_goma",
- "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"linux-host\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy.WARNING",
+ "/path/to/tmp/"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
@@ -1624,13 +1775,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
"ENGINE_PATH": "[CACHE]/builder",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
},
"env_prefixes": {
@@ -1651,9 +1814,331 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).upload goma stats to bigquery",
+ "name": "teardown remote execution.read reproxy.WARNING",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe_tmp_1",
+ "*.rrpl"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe_tmp_1/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
]
},
{
diff --git a/recipes/engine_v2/builder.expected/dart-internal-flutter-failure.json b/recipes/engine_v2/builder.expected/dart-internal-flutter-failure.json
index 161dadb..380b35b 100644
--- a/recipes/engine_v2/builder.expected/dart-internal-flutter-failure.json
+++ b/recipes/engine_v2/builder.expected/dart-internal-flutter-failure.json
@@ -391,7 +391,9 @@
"python3",
"[CACHE]/builder/src/flutter/tools/gn",
"--ios",
- "--no-goma"
+ "--rbe",
+ "--no-goma",
+ "--rbe-server-address=unix://[CLEANUP]/rbe_tmp_1/reproxy.sock"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
@@ -433,15 +435,22 @@
"hostname": "rdbhost"
}
},
- "name": "gn --ios --no-goma"
+ "name": "gn --ios --rbe --no-goma --rbe-server-address=unix://[CLEANUP]/rbe_tmp_1/reproxy.sock"
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient"
},
{
"cmd": [
- "[CACHE]/builder/src/flutter/third_party/ninja/ninja",
- "-C",
- "[CACHE]/builder/src/out/ios_debug",
- "-j",
- "5"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[flutter::rbe]/resources/tool_manifest.json",
+ "/path/to/tmp/json"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
@@ -463,6 +472,298 @@
"[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
]
},
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/reclient\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient.install path/to/reclient",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version",
+ "-ensure-file",
+ "path/to/reclient version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/reclient\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--re_proxy=[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/reproxy"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "setup remote execution.start reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/flutter/third_party/ninja/ninja",
+ "-j",
+ "5",
+ "-C",
+ "[CACHE]/builder/src/out/ios_debug"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
"env_suffixes": {
"DEPOT_TOOLS_UPDATE": [
"0"
@@ -486,6 +787,580 @@
"name": "build ios_debug"
},
{
+ "cmd": [],
+ "name": "teardown remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--shutdown"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.stop reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/bootstrap.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read bootstrap.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/rbe_metrics.txt",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read rbe_metrics.txt",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe_tmp_1",
+ "*.rrpl"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe_tmp_1/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
+ ]
+ },
+ {
"cmd": [
"dart",
"pub",
diff --git a/recipes/engine_v2/builder.expected/dart-internal-flutter-success.json b/recipes/engine_v2/builder.expected/dart-internal-flutter-success.json
index 9601a62..c066942 100644
--- a/recipes/engine_v2/builder.expected/dart-internal-flutter-success.json
+++ b/recipes/engine_v2/builder.expected/dart-internal-flutter-success.json
@@ -391,7 +391,9 @@
"python3",
"[CACHE]/builder/src/flutter/tools/gn",
"--ios",
- "--no-goma"
+ "--rbe",
+ "--no-goma",
+ "--rbe-server-address=unix://[CLEANUP]/rbe_tmp_1/reproxy.sock"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
@@ -433,15 +435,22 @@
"hostname": "rdbhost"
}
},
- "name": "gn --ios --no-goma"
+ "name": "gn --ios --rbe --no-goma --rbe-server-address=unix://[CLEANUP]/rbe_tmp_1/reproxy.sock"
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient"
},
{
"cmd": [
- "[CACHE]/builder/src/flutter/third_party/ninja/ninja",
- "-C",
- "[CACHE]/builder/src/out/ios_debug",
- "-j",
- "5"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[flutter::rbe]/resources/tool_manifest.json",
+ "/path/to/tmp/json"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
@@ -463,6 +472,298 @@
"[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
]
},
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/reclient\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient.install path/to/reclient",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version",
+ "-ensure-file",
+ "path/to/reclient version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/reclient\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--re_proxy=[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/reproxy"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "setup remote execution.start reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/flutter/third_party/ninja/ninja",
+ "-j",
+ "5",
+ "-C",
+ "[CACHE]/builder/src/out/ios_debug"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
"env_suffixes": {
"DEPOT_TOOLS_UPDATE": [
"0"
@@ -486,6 +787,580 @@
"name": "build ios_debug"
},
{
+ "cmd": [],
+ "name": "teardown remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--shutdown"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.stop reproxy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/bootstrap.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read bootstrap.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/rbe_metrics.txt",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read rbe_metrics.txt",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe_tmp_1",
+ "*.rrpl"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe_tmp_1/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
+ ]
+ },
+ {
"cmd": [
"dart",
"pub",
diff --git a/recipes/engine_v2/builder.expected/mac.json b/recipes/engine_v2/builder.expected/mac.json
index f88a8df..39e68d0 100644
--- a/recipes/engine_v2/builder.expected/mac.json
+++ b/recipes/engine_v2/builder.expected/mac.json
@@ -1007,7 +1007,9 @@
"cmd": [
"python3",
"[CACHE]/builder/src/flutter/tools/gn",
- "--ios"
+ "--ios",
+ "--rbe",
+ "--rbe-server-address=unix://[CLEANUP]/rbe_tmp_1/reproxy.sock"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
@@ -1052,7 +1054,7 @@
"hostname": "rdbhost"
}
},
- "name": "gn --ios"
+ "name": "gn --ios --rbe --rbe-server-address=unix://[CLEANUP]/rbe_tmp_1/reproxy.sock"
},
{
"cmd": [],
@@ -1572,13 +1574,18 @@
},
{
"cmd": [],
- "name": "setup goma (2)"
+ "name": "ensure reclient"
},
{
"cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "restart"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[flutter::rbe]/resources/tool_manifest.json",
+ "/path/to/tmp/json"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
@@ -1588,16 +1595,6 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
"ENGINE_PATH": "[CACHE]/builder",
"GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
@@ -1623,7 +1620,239 @@
"hostname": "rdbhost"
}
},
- "name": "setup goma (2).start goma",
+ "name": "ensure reclient.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/reclient\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient.install path/to/reclient",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "darwin",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version",
+ "-ensure-file",
+ "path/to/reclient version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "darwin",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/reclient\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "darwin",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--re_proxy=[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/reproxy"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "darwin",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "setup remote execution.start reproxy",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -1644,13 +1873,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
"ENGINE_PATH": "[CACHE]/builder",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "darwin",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
},
"env_prefixes": {
@@ -1682,14 +1923,12 @@
},
{
"cmd": [],
- "name": "teardown goma (2)"
+ "name": "teardown remote execution"
},
{
"cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "jsonstatus",
- "/path/to/tmp/json"
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--shutdown"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
@@ -1699,21 +1938,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
"ENGINE_PATH": "[CACHE]/builder",
"GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "darwin",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
},
"env_prefixes": {
@@ -1734,119 +1977,7 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).goma jsonstatus",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_LOG_LINE@json.output@{@@@",
- "@@@STEP_LOG_LINE@json.output@ \"foo\": \"bar\"@@@",
- "@@@STEP_LOG_LINE@json.output@}@@@",
- "@@@STEP_LOG_END@json.output@@@"
- ]
- },
- {
- "cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "stat"
- ],
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
- "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
- "ENGINE_PATH": "[CACHE]/builder",
- "GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "LUCI_WORKDIR": "[START_DIR]",
- "OS": "darwin",
- "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "infra_step": true,
- "luci_context": {
- "realm": {
- "name": "flutter:prod"
- },
- "resultdb": {
- "current_invocation": {
- "name": "invocations/build:8945511751514863184",
- "update_token": "token"
- },
- "hostname": "rdbhost"
- }
- },
- "name": "teardown goma (2).goma stats",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "stop"
- ],
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
- "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
- "ENGINE_PATH": "[CACHE]/builder",
- "GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "LUCI_WORKDIR": "[START_DIR]",
- "OS": "darwin",
- "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "infra_step": true,
- "luci_context": {
- "realm": {
- "name": "flutter:prod"
- },
- "resultdb": {
- "current_invocation": {
- "name": "invocations/build:8945511751514863184",
- "update_token": "token"
- },
- "hostname": "rdbhost"
- }
- },
- "name": "teardown goma (2).stop goma",
+ "name": "teardown remote execution.stop reproxy",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -1859,7 +1990,7 @@
"--json-output",
"/path/to/tmp/json",
"copy",
- "[CLEANUP]/compiler_proxy.WARNING",
+ "[CLEANUP]/rbe_tmp_1/bootstrap.WARNING",
"/path/to/tmp/"
],
"env": {
@@ -1870,13 +2001,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
"ENGINE_PATH": "[CACHE]/builder",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "darwin",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
},
"env_prefixes": {
@@ -1897,11 +2040,10 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).read goma_client warning log",
+ "name": "teardown remote execution.read bootstrap.WARNING",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
- "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
]
},
{
@@ -1912,7 +2054,7 @@
"--json-output",
"/path/to/tmp/json",
"copy",
- "[CACHE]/goma/client/goma_stats.json",
+ "[CLEANUP]/rbe_tmp_1/rbe_metrics.txt",
"/path/to/tmp/"
],
"env": {
@@ -1923,13 +2065,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
"ENGINE_PATH": "[CACHE]/builder",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "darwin",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
},
"env_prefixes": {
@@ -1950,25 +2104,22 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).read goma_stats.json",
+ "name": "teardown remote execution.read rbe_metrics.txt",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_LOG_LINE@json.output@{@@@",
- "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
- "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184,@@@",
- "@@@STEP_LOG_LINE@json.output@ \"builder\": \"mac-host\",@@@",
- "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:24.500000\",@@@",
- "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000006000@@@",
- "@@@STEP_LOG_LINE@json.output@ }@@@",
- "@@@STEP_LOG_LINE@json.output@}@@@",
- "@@@STEP_LOG_END@json.output@@@"
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
]
},
{
"cmd": [
- "[START_DIR]/cipd_tool/path/to/bqupload/version%3Apinned-version/bqupload",
- "fuchsia-infra.artifacts.builds_beta_goma",
- "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"mac-host\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy.WARNING",
+ "/path/to/tmp/"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
@@ -1978,13 +2129,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
"ENGINE_PATH": "[CACHE]/builder",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "darwin",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
},
"env_prefixes": {
@@ -2005,9 +2168,331 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).upload goma stats to bigquery",
+ "name": "teardown remote execution.read reproxy.WARNING",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "darwin",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "darwin",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "darwin",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe_tmp_1",
+ "*.rrpl"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "darwin",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe_tmp_1/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "darwin",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
]
},
{
diff --git a/recipes/engine_v2/builder.expected/monorepo.json b/recipes/engine_v2/builder.expected/monorepo.json
index 0d8d91e..0fec223 100644
--- a/recipes/engine_v2/builder.expected/monorepo.json
+++ b/recipes/engine_v2/builder.expected/monorepo.json
@@ -645,7 +645,9 @@
"python3",
"[CACHE]/builder/engine/src/flutter/tools/gn",
"--ios",
- "--gn-args=engine_version=\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\""
+ "--rbe",
+ "--gn-args=engine_version=\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"",
+ "--rbe-server-address=unix://[CLEANUP]/rbe_tmp_1/reproxy.sock"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
@@ -690,7 +692,7 @@
"hostname": "rdbhost"
}
},
- "name": "gn --ios --gn-args=engine_version=\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\""
+ "name": "gn --ios --rbe --gn-args=engine_version=\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\" --rbe-server-address=unix://[CLEANUP]/rbe_tmp_1/reproxy.sock"
},
{
"cmd": [],
@@ -1210,13 +1212,18 @@
},
{
"cmd": [],
- "name": "setup goma (2)"
+ "name": "ensure reclient"
},
{
"cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "restart"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[flutter::rbe]/resources/tool_manifest.json",
+ "/path/to/tmp/json"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
@@ -1226,16 +1233,6 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
"ENGINE_PATH": "[CACHE]/builder/engine",
"GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
@@ -1261,7 +1258,239 @@
"hostname": "rdbhost"
}
},
- "name": "setup goma (2).start goma",
+ "name": "ensure reclient.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/reclient\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient.install path/to/reclient",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version",
+ "-ensure-file",
+ "path/to/reclient version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/reclient\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--re_proxy=[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/reproxy"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "setup remote execution.start reproxy",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -1282,13 +1511,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
"ENGINE_PATH": "[CACHE]/builder/engine",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"env_prefixes": {
@@ -1320,14 +1561,12 @@
},
{
"cmd": [],
- "name": "teardown goma (2)"
+ "name": "teardown remote execution"
},
{
"cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "jsonstatus",
- "/path/to/tmp/json"
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--shutdown"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
@@ -1337,21 +1576,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
"ENGINE_PATH": "[CACHE]/builder/engine",
"GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"env_prefixes": {
@@ -1372,119 +1615,7 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).goma jsonstatus",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_LOG_LINE@json.output@{@@@",
- "@@@STEP_LOG_LINE@json.output@ \"foo\": \"bar\"@@@",
- "@@@STEP_LOG_LINE@json.output@}@@@",
- "@@@STEP_LOG_END@json.output@@@"
- ]
- },
- {
- "cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "stat"
- ],
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
- "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
- "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
- "ENGINE_PATH": "[CACHE]/builder/engine",
- "GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "LUCI_WORKDIR": "[START_DIR]",
- "OS": "linux",
- "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "infra_step": true,
- "luci_context": {
- "realm": {
- "name": "dart:ci.sandbox"
- },
- "resultdb": {
- "current_invocation": {
- "name": "invocations/build:8945511751514863184",
- "update_token": "token"
- },
- "hostname": "rdbhost"
- }
- },
- "name": "teardown goma (2).goma stats",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "stop"
- ],
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
- "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
- "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
- "ENGINE_PATH": "[CACHE]/builder/engine",
- "GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "LUCI_WORKDIR": "[START_DIR]",
- "OS": "linux",
- "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "infra_step": true,
- "luci_context": {
- "realm": {
- "name": "dart:ci.sandbox"
- },
- "resultdb": {
- "current_invocation": {
- "name": "invocations/build:8945511751514863184",
- "update_token": "token"
- },
- "hostname": "rdbhost"
- }
- },
- "name": "teardown goma (2).stop goma",
+ "name": "teardown remote execution.stop reproxy",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -1497,7 +1628,7 @@
"--json-output",
"/path/to/tmp/json",
"copy",
- "[CLEANUP]/compiler_proxy.WARNING",
+ "[CLEANUP]/rbe_tmp_1/bootstrap.WARNING",
"/path/to/tmp/"
],
"env": {
@@ -1508,13 +1639,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
"ENGINE_PATH": "[CACHE]/builder/engine",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"env_prefixes": {
@@ -1535,11 +1678,10 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).read goma_client warning log",
+ "name": "teardown remote execution.read bootstrap.WARNING",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
- "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
]
},
{
@@ -1550,7 +1692,7 @@
"--json-output",
"/path/to/tmp/json",
"copy",
- "[CACHE]/goma/client/goma_stats.json",
+ "[CLEANUP]/rbe_tmp_1/rbe_metrics.txt",
"/path/to/tmp/"
],
"env": {
@@ -1561,13 +1703,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
"ENGINE_PATH": "[CACHE]/builder/engine",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"env_prefixes": {
@@ -1588,25 +1742,22 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).read goma_stats.json",
+ "name": "teardown remote execution.read rbe_metrics.txt",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_LOG_LINE@json.output@{@@@",
- "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
- "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184,@@@",
- "@@@STEP_LOG_LINE@json.output@ \"builder\": \"monorepo_builder\",@@@",
- "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:24.500000\",@@@",
- "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000006000@@@",
- "@@@STEP_LOG_LINE@json.output@ }@@@",
- "@@@STEP_LOG_LINE@json.output@}@@@",
- "@@@STEP_LOG_END@json.output@@@"
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
]
},
{
"cmd": [
- "[START_DIR]/cipd_tool/path/to/bqupload/version%3Apinned-version/bqupload",
- "fuchsia-infra.artifacts.builds_beta_goma",
- "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"monorepo_builder\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy.WARNING",
+ "/path/to/tmp/"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
@@ -1616,13 +1767,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
"ENGINE_PATH": "[CACHE]/builder/engine",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"env_prefixes": {
@@ -1643,9 +1806,331 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).upload goma stats to bigquery",
+ "name": "teardown remote execution.read reproxy.WARNING",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe_tmp_1",
+ "*.rrpl"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe_tmp_1/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
]
},
{
diff --git a/recipes/engine_v2/builder.expected/monorepo_tryjob.json b/recipes/engine_v2/builder.expected/monorepo_tryjob.json
index 0e35958..58689bd 100644
--- a/recipes/engine_v2/builder.expected/monorepo_tryjob.json
+++ b/recipes/engine_v2/builder.expected/monorepo_tryjob.json
@@ -732,7 +732,9 @@
"python3",
"[CACHE]/builder/engine/src/flutter/tools/gn",
"--ios",
- "--gn-args=engine_version=\"81123491\""
+ "--rbe",
+ "--gn-args=engine_version=\"81123491\"",
+ "--rbe-server-address=unix://[CLEANUP]/rbe_tmp_1/reproxy.sock"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
@@ -777,7 +779,7 @@
"hostname": "rdbhost"
}
},
- "name": "gn --ios --gn-args=engine_version=\"81123491\""
+ "name": "gn --ios --rbe --gn-args=engine_version=\"81123491\" --rbe-server-address=unix://[CLEANUP]/rbe_tmp_1/reproxy.sock"
},
{
"cmd": [],
@@ -1297,13 +1299,18 @@
},
{
"cmd": [],
- "name": "setup goma (2)"
+ "name": "ensure reclient"
},
{
"cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "restart"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[flutter::rbe]/resources/tool_manifest.json",
+ "/path/to/tmp/json"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
@@ -1313,16 +1320,6 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
"ENGINE_PATH": "[CACHE]/builder/engine",
"GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
@@ -1348,7 +1345,239 @@
"hostname": "rdbhost"
}
},
- "name": "setup goma (2).start goma",
+ "name": "ensure reclient.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/reclient\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure reclient.install path/to/reclient",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": ""
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version",
+ "-ensure-file",
+ "path/to/reclient version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": ""
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure reclient.install path/to/reclient.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/reclient\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/rbe/deps"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": ""
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "create rbe cache dir"
+ },
+ {
+ "cmd": [],
+ "name": "setup remote execution"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--re_proxy=[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/reproxy"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": ""
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "setup remote execution.start reproxy",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -1369,13 +1598,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
"ENGINE_PATH": "[CACHE]/builder/engine",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": ""
},
"env_prefixes": {
@@ -1407,14 +1648,12 @@
},
{
"cmd": [],
- "name": "teardown goma (2)"
+ "name": "teardown remote execution"
},
{
"cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "jsonstatus",
- "/path/to/tmp/json"
+ "[START_DIR]/cipd_tool/path/to/reclient/version%3Apinned-version/bootstrap",
+ "--shutdown"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
@@ -1424,21 +1663,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
"ENGINE_PATH": "[CACHE]/builder/engine",
"GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": ""
},
"env_prefixes": {
@@ -1459,119 +1702,7 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).goma jsonstatus",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_LOG_LINE@json.output@{@@@",
- "@@@STEP_LOG_LINE@json.output@ \"foo\": \"bar\"@@@",
- "@@@STEP_LOG_LINE@json.output@}@@@",
- "@@@STEP_LOG_END@json.output@@@"
- ]
- },
- {
- "cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "stat"
- ],
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
- "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
- "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
- "ENGINE_PATH": "[CACHE]/builder/engine",
- "GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "LUCI_WORKDIR": "[START_DIR]",
- "OS": "linux",
- "REVISION": ""
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "infra_step": true,
- "luci_context": {
- "realm": {
- "name": "dart:ci.sandbox"
- },
- "resultdb": {
- "current_invocation": {
- "name": "invocations/build:8945511751514863184",
- "update_token": "token"
- },
- "hostname": "rdbhost"
- }
- },
- "name": "teardown goma (2).goma stats",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
- "[CACHE]/goma/client/goma_ctl.py",
- "stop"
- ],
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
- "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
- "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
- "ENGINE_PATH": "[CACHE]/builder/engine",
- "GIT_BRANCH": "",
- "GLOG_log_dir": "[CLEANUP]",
- "GOMA_CACHE_DIR": "[CACHE]/goma",
- "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
- "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
- "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
- "GOMA_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
- "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
- "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "LUCI_WORKDIR": "[START_DIR]",
- "OS": "linux",
- "REVISION": ""
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "infra_step": true,
- "luci_context": {
- "realm": {
- "name": "dart:ci.sandbox"
- },
- "resultdb": {
- "current_invocation": {
- "name": "invocations/build:8945511751514863184",
- "update_token": "token"
- },
- "hostname": "rdbhost"
- }
- },
- "name": "teardown goma (2).stop goma",
+ "name": "teardown remote execution.stop reproxy",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -1584,7 +1715,7 @@
"--json-output",
"/path/to/tmp/json",
"copy",
- "[CLEANUP]/compiler_proxy.WARNING",
+ "[CLEANUP]/rbe_tmp_1/bootstrap.WARNING",
"/path/to/tmp/"
],
"env": {
@@ -1595,13 +1726,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
"ENGINE_PATH": "[CACHE]/builder/engine",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": ""
},
"env_prefixes": {
@@ -1622,11 +1765,10 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).read goma_client warning log",
+ "name": "teardown remote execution.read bootstrap.WARNING",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
- "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ "@@@STEP_LOG_END@bootstrap.WARNING@@@"
]
},
{
@@ -1637,7 +1779,7 @@
"--json-output",
"/path/to/tmp/json",
"copy",
- "[CACHE]/goma/client/goma_stats.json",
+ "[CLEANUP]/rbe_tmp_1/rbe_metrics.txt",
"/path/to/tmp/"
],
"env": {
@@ -1648,13 +1790,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
"ENGINE_PATH": "[CACHE]/builder/engine",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": ""
},
"env_prefixes": {
@@ -1675,25 +1829,22 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).read goma_stats.json",
+ "name": "teardown remote execution.read rbe_metrics.txt",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_LOG_LINE@json.output@{@@@",
- "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
- "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184,@@@",
- "@@@STEP_LOG_LINE@json.output@ \"builder\": \"monorepo_builder_try\",@@@",
- "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:24.500000\",@@@",
- "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000006000@@@",
- "@@@STEP_LOG_LINE@json.output@ }@@@",
- "@@@STEP_LOG_LINE@json.output@}@@@",
- "@@@STEP_LOG_END@json.output@@@"
+ "@@@STEP_LOG_END@rbe_metrics.txt@@@"
]
},
{
"cmd": [
- "[START_DIR]/cipd_tool/path/to/bqupload/version%3Apinned-version/bqupload",
- "fuchsia-infra.artifacts.builds_beta_goma",
- "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"monorepo_builder_try\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy.WARNING",
+ "/path/to/tmp/"
],
"env": {
"ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
@@ -1703,13 +1854,25 @@
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
"ENGINE_PATH": "[CACHE]/builder/engine",
"GIT_BRANCH": "",
- "GOMA_TMP_DIR": "[CLEANUP]/goma",
- "GOMA_USE_LOCAL": "False",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
"REVISION": ""
},
"env_prefixes": {
@@ -1730,9 +1893,331 @@
"hostname": "rdbhost"
}
},
- "name": "teardown goma (2).upload goma stats to bigquery",
+ "name": "teardown remote execution.read reproxy.WARNING",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy-gomaip.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": ""
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy-gomaip.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy-gomaip.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy_outerr.log",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": ""
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_outerr.log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_outerr.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/rewrapper.WARNING",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": ""
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read rewrapper.WARNING",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@rewrapper.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/rbe_tmp_1",
+ "*.rrpl"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": ""
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.find rrpl files",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/rbe_tmp_1/reproxy_2021-10-16_22_52_23.rrpl@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/rbe_tmp_1/reproxy_2021-10-16_22_52_23.rrpl",
+ "/path/to/tmp/"
+ ],
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/engine/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder/engine",
+ "ENGINE_PATH": "[CACHE]/builder/engine",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "RBE_cache_dir": "[CACHE]/rbe/deps",
+ "RBE_deps_cache_max_mb": "512",
+ "RBE_enable_deps_cache": "true",
+ "RBE_instance": "fake_rbe_instance",
+ "RBE_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_log_format": "reducedtext",
+ "RBE_output_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_platform": "fake_rbe_platform",
+ "RBE_proxy_log_dir": "[CLEANUP]/rbe_tmp_1",
+ "RBE_server_address": "unix://[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_service": "remotebuildexecution.googleapis.com:443",
+ "RBE_socket_path": "[CLEANUP]/rbe_tmp_1/reproxy.sock",
+ "RBE_use_application_default_credentials": "false",
+ "RBE_use_gce_credentials": "true",
+ "REVISION": ""
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/engine/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "teardown remote execution.read reproxy_2021-10-16_22_52_23.rrpl",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@reproxy_2021-10-16_22_52_23.rrpl@@@"
]
},
{
diff --git a/recipes/engine_v2/builder.py b/recipes/engine_v2/builder.py
index 6127d8b..c4344a0 100644
--- a/recipes/engine_v2/builder.py
+++ b/recipes/engine_v2/builder.py
@@ -193,10 +193,19 @@
if api.monorepo.is_monorepo_try_build:
version = api.monorepo.try_build_identifier
gn.append(f'--gn-args=engine_version="{version}"')
+ rbe_working_path = api.path.mkdtemp(prefix="rbe")
+ if '--rbe' in gn:
+ gn.append(
+ f'--rbe-server-address=unix://{rbe_working_path}/reproxy.sock'
+ )
api.build_util.run_gn(gn, checkout)
ninja = build.get('ninja')
- ninja_tool[ninja.get('tool', 'ninja')
- ](ninja.get('config'), checkout, ninja.get('targets', []))
+ ninja_tool[ninja.get('tool', 'ninja')](
+ ninja.get('config'),
+ checkout,
+ ninja.get('targets', []),
+ rbe_working_path=rbe_working_path
+ )
generator_tasks = build.get('generators', {}).get('tasks', [])
pub_dirs = build.get('generators', {}).get('pub_dirs', [])
archives = build.get('archives', [])
@@ -318,8 +327,8 @@
"out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip",
"out/android_jit_release_x86/zip_archives/download.flutter.io"
]
- }], "gn": ["--ios"], "ninja": {"config": "ios_debug", "targets": []},
- "generators": {
+ }], "gn": ["--ios", "--rbe"],
+ "ninja": {"config": "ios_debug", "targets": []}, "generators": {
"pub_dirs": ["dev"], "tasks": [{
"name": "generator1", "scripts": ["script1.sh", "dev/felt.dart"],
"parameters": ["--argument1"]