attempt to recover ios debug symbols on a failed mac/ios devicelab build
Should mitigate (but not completely fix) https://github.com/flutter/flutter/issues/120808.
Bug: https://github.com/flutter/flutter/issues/123257
Change-Id: If10535584f6b2a72770f58258c20983d15f95ee7
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/41848
Reviewed-by: Keyong Han <keyonghan@google.com>
Commit-Queue: Christopher Fujino <fujino@google.com>
Reviewed-by: Jenn Magder <magder@google.com>
diff --git a/recipe_modules/os_utils/api.py b/recipe_modules/os_utils/api.py
index 6e6955c..078ad25 100644
--- a/recipe_modules/os_utils/api.py
+++ b/recipe_modules/os_utils/api.py
@@ -207,8 +207,7 @@
def shutdown_simulators(self):
"""It stops simulators if task is running on a devicelab bot."""
- if (str(self.m.swarming.bot_id).startswith('flutter-devicelab')
- and self.m.platform.is_mac):
+ if self._is_devicelab() and self.m.platform.is_mac:
with self.m.step.nest('Shutdown simulators'):
self.m.step(
'Shutdown simulators',
@@ -231,50 +230,67 @@
['powershell.exe', resource_name],
)
- def ios_debug_symbol_doctor(self):
- """Call the ios_debug_symbol_doctor entrypoint of the Device Doctor."""
- if str(self.m.swarming.bot_id
- ).startswith('flutter-devicelab') and self.m.platform.is_mac:
- with self.m.step.nest('ios_debug_symbol_doctor'):
- cocoon_path = self._checkout_cocoon()
- entrypoint = cocoon_path.join(
- 'device_doctor',
- 'bin',
- 'ios_debug_symbol_doctor.dart',
- )
- # This is not set by the builder config, but can be provided via LED
- timeout = self.m.properties.get(
- TIMEOUT_PROPERTY,
- 120, # 2 minutes
- )
- # Since we double the timeout on each retry, the last retry will have a
- # timeout of 16 minutes
- retry_count = 4
- with self.m.context(cwd=cocoon_path.join('device_doctor'),
- infra_steps=True):
- self.m.step(
- 'pub get device_doctor',
- ['dart', 'pub', 'get'],
- )
- for _ in range(retry_count):
- result = self._diagnose_and_recover_debug_symbols(entrypoint, timeout, cocoon_path)
- # No errors in attached phones
- if result:
- return
- # Try for twice as long next time
- timeout *= 2
- message = '''
+ def _get_initial_timeout(self):
+ return self.m.properties.get(
+ # This is not set by the builder config, but can be provided via LED
+ TIMEOUT_PROPERTY,
+ 120, # 2 minutes
+ )
+
+ def ios_debug_symbol_doctor(self, diagnose_first=True):
+ """Call the ios_debug_symbol_doctor entrypoint of the Device Doctor.
+
+ Args:
+ diagnose_first:
+ (bool) Whether diagnosis will be run initially before attempting to recover.
+ """
+ if not self._is_devicelab() or not self.m.platform.is_mac:
+ # if no iPhone is attached, we don't need to recover ios debug symbols
+ return
+ with self.m.step.nest('ios_debug_symbol_doctor'):
+ cocoon_path = self._checkout_cocoon()
+ entrypoint = cocoon_path.join(
+ 'device_doctor',
+ 'bin',
+ 'ios_debug_symbol_doctor.dart',
+ )
+
+ timeout = self._get_initial_timeout()
+ # Since we double the timeout on each retry, the last retry will have a
+ # timeout of 16 minutes
+ retry_count = 4
+ with self.m.context(cwd=cocoon_path.join('device_doctor'),
+ infra_steps=True):
+ self.m.step(
+ 'pub get device_doctor',
+ ['dart', 'pub', 'get'],
+ )
+ if diagnose_first:
+ clean_results = self._diagnose_debug_symbols(entrypoint, timeout, cocoon_path)
+ if clean_results:
+ # It doesn't appear debug symbols need to be sync'd, we are finished
+ return
+ for _ in range(retry_count):
+ self._recover_debug_symbols(entrypoint, timeout, cocoon_path)
+ result = self._diagnose_debug_symbols(entrypoint, timeout, cocoon_path)
+ if result:
+ # attached devices don't have errors
+ return
+ # Try for twice as long next time
+ timeout *= 2
+
+ message = '''
The ios_debug_symbol_doctor is detecting phones attached with errors and failed
to recover this bot with a timeout of %s seconds.
See https://github.com/flutter/flutter/issues/103511 for more context.
''' % timeout
- # raise purple
- self.m.step.empty(
- 'Recovery failed after %s attempts' % retry_count,
- status=self.m.step.INFRA_FAILURE,
- step_text=message,
- )
+ # raise purple
+ self.m.step.empty(
+ 'Recovery failed after %s attempts' % retry_count,
+ status=self.m.step.INFRA_FAILURE,
+ step_text=message,
+ )
@@ -313,7 +329,7 @@
)
return cocoon_path
- def _diagnose_and_recover_debug_symbols(self, entrypoint, timeout, cocoon_path):
+ def _diagnose_debug_symbols(self, entrypoint, timeout, cocoon_path):
"""Diagnose if attached phones have errors with debug symbols.
If there are errors, a recovery will be attempted. This function is intended
@@ -329,17 +345,21 @@
)
return True
except self.m.step.StepFailure as e:
- self.m.step(
- 'recover with %s second timeout' % timeout,
- [
- 'dart',
- entrypoint,
- 'recover',
- '--cocoon-root',
- cocoon_path,
- '--timeout',
- timeout,
- ],
- )
return False
+ def _recover_debug_symbols(self, entrypoint, timeout, cocoon_path):
+ self.m.step(
+ 'recover with %s second timeout' % timeout,
+ [
+ 'dart',
+ entrypoint,
+ 'recover',
+ '--cocoon-root',
+ cocoon_path,
+ '--timeout',
+ timeout,
+ ],
+ )
+
+ def _is_devicelab(self):
+ return str(self.m.swarming.bot_id).startswith('flutter-devicelab')
diff --git a/recipe_modules/os_utils/examples/full.expected/ios_debug_symbol_doctor_fails_four_times.json b/recipe_modules/os_utils/examples/full.expected/ios_debug_symbol_doctor_fails_four_times.json
index 7147cc0..1a4aaa8 100644
--- a/recipe_modules/os_utils/examples/full.expected/ios_debug_symbol_doctor_fails_four_times.json
+++ b/recipe_modules/os_utils/examples/full.expected/ios_debug_symbol_doctor_fails_four_times.json
@@ -258,6 +258,20 @@
]
},
{
+ "cmd": [
+ "dart",
+ "[CACHE]/cocoon/device_doctor/bin/ios_debug_symbol_doctor.dart",
+ "diagnose"
+ ],
+ "cwd": "[CACHE]/cocoon/device_doctor",
+ "infra_step": true,
+ "name": "ios_debug_symbol_doctor.diagnose (5)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_EXCEPTION@@@"
+ ]
+ },
+ {
"cmd": [],
"name": "ios_debug_symbol_doctor.Recovery failed after 4 attempts",
"~followup_annotations": [
diff --git a/recipe_modules/os_utils/examples/full.py b/recipe_modules/os_utils/examples/full.py
index f658031..c9d6d1a 100644
--- a/recipe_modules/os_utils/examples/full.py
+++ b/recipe_modules/os_utils/examples/full.py
@@ -55,6 +55,7 @@
api.step_data('ios_debug_symbol_doctor.diagnose (2)', retcode=1),
api.step_data('ios_debug_symbol_doctor.diagnose (3)', retcode=1),
api.step_data('ios_debug_symbol_doctor.diagnose (4)', retcode=1),
+ api.step_data('ios_debug_symbol_doctor.diagnose (5)', retcode=1),
api.platform('mac', 64),
api.properties.environ(
properties.EnvProperties(SWARMING_BOT_ID='flutter-devicelab-mac-1')
diff --git a/recipe_modules/test_utils/api.py b/recipe_modules/test_utils/api.py
index 09d42af..7e43bef 100644
--- a/recipe_modules/test_utils/api.py
+++ b/recipe_modules/test_utils/api.py
@@ -131,7 +131,10 @@
stdout = self._truncateString(result.stdout)
# Truncate stderr
stderr = self._truncateString(result.stderr)
- raise self.m.step.StepFailure('\n\n```%s```\n' % (stdout or stderr))
+ raise self.m.step.StepFailure(
+ '\n\n```%s```\n' % (stdout or stderr),
+ result=result,
+ )
finally:
if not suppress_log:
self.m.step.active_result.presentation.logs[
diff --git a/recipe_modules/test_utils/examples/full.expected/failing.json b/recipe_modules/test_utils/examples/full.expected/failing.json
index 4b98857..a9f9cdf 100644
--- a/recipe_modules/test_utils/examples/full.expected/failing.json
+++ b/recipe_modules/test_utils/examples/full.expected/failing.json
@@ -18,7 +18,7 @@
{
"failure": {
"failure": {},
- "humanReason": "\n\n```#failure\nthis is a failure```\n"
+ "humanReason": "Step('\\n\\n```#failure\\nthis is a failure```\\n') (retcode: 1)"
},
"name": "$result"
}
diff --git a/recipe_modules/test_utils/examples/full.expected/long_stdout.json b/recipe_modules/test_utils/examples/full.expected/long_stdout.json
index c629011..7a1703c 100644
--- a/recipe_modules/test_utils/examples/full.expected/long_stdout.json
+++ b/recipe_modules/test_utils/examples/full.expected/long_stdout.json
@@ -1516,7 +1516,7 @@
{
"failure": {
"failure": {},
- "humanReason": "\n\n```xyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz\nxyz```\n"
+ "humanReason": "Step('\\n\\n```xyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz\\nxyz```\\n') (retcode: 1)"
},
"name": "$result"
}
diff --git a/recipes/devicelab/devicelab_drone.expected/xcode-devicelab-timeout.json b/recipes/devicelab/devicelab_drone.expected/xcode-devicelab-timeout.json
new file mode 100644
index 0000000..904025d
--- /dev/null
+++ b/recipes/devicelab/devicelab_drone.expected/xcode-devicelab-timeout.json
@@ -0,0 +1,3316 @@
+[
+ {
+ "cmd": [
+ "top",
+ "-l",
+ "3",
+ "-o",
+ "mem"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "OS info"
+ },
+ {
+ "cmd": [
+ "xattr",
+ "/opt/s/w/ir/cipd_bin_packages/python3"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "python3 xattr info"
+ },
+ {
+ "cmd": [
+ "xattr",
+ "/opt/s/w/ir/cipd_bin_packages/git"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "git xattr info"
+ },
+ {
+ "cmd": [],
+ "name": "Checkout flutter/flutter"
+ },
+ {
+ "cmd": [
+ "python3",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "--url",
+ "https://flutter.googlesource.com/mirrors/flutter"
+ ],
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Checkout flutter/flutter.git setup",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "fetch",
+ "origin",
+ "--recurse-submodules",
+ "--progress",
+ "--tags"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "env": {
+ "PATH": "RECIPE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Checkout flutter/flutter.git fetch",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Checkout flutter/flutter.git checkout",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Checkout flutter/flutter.read revision",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@",
+ "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Checkout flutter/flutter.git clean",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Checkout flutter/flutter.submodule sync",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Checkout flutter/flutter.submodule update",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "log",
+ "--pretty=format:%ct",
+ "-n",
+ "1"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "git commit time",
+ "timeout": 600.0
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "git rev-parse"
+ },
+ {
+ "cmd": [],
+ "name": "Initialize logs"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CLEANUP]/flutter_logs_dir"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Initialize logs.Ensure [CLEANUP]/flutter_logs_dir",
+ "~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]/flutter_logs_dir/noop.txt"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Initialize logs.Write noop file",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Dependencies"
+ },
+ {
+ "cmd": [
+ "ideviceinfo",
+ "--key",
+ "ProductType"
+ ],
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Find device type"
+ },
+ {
+ "cmd": [
+ "flutter",
+ "doctor"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "flutter doctor",
+ "timeout": 300
+ },
+ {
+ "cmd": [
+ "dart",
+ "pub",
+ "get"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "dart pub get"
+ },
+ {
+ "cmd": [
+ "rm",
+ "-rf",
+ "[HOME]/Library/Developer/Xcode/DerivedData"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Delete mac deriveddata"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CLEANUP]/tmp_tmp_2/osx_sdk",
+ "-ensure-file",
+ "infra/tools/mac_toolchain/${platform} latest",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure_installed",
+ "~followup_annotations": [
+ "@@@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-latest----------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/mac_toolchain/resolved-platform\"@@@",
+ "@@@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": [
+ "[CLEANUP]/tmp_tmp_2/osx_sdk/mac_toolchain",
+ "install",
+ "-kind",
+ "ios",
+ "-xcode-version",
+ "deadbeef",
+ "-output-dir",
+ "/opt/flutter/xcode/deadbeef/XCode.app",
+ "-cipd-package-prefix",
+ "flutter_internal/ios/xcode"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "install xcode"
+ },
+ {
+ "cmd": [
+ "sudo",
+ "xcode-select",
+ "--switch",
+ "/opt/flutter/xcode/deadbeef/XCode.app"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "select XCode"
+ },
+ {
+ "cmd": [
+ "xcrun",
+ "simctl",
+ "list"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "list simulators"
+ },
+ {
+ "cmd": [
+ "flutter",
+ "doctor",
+ "--verbose"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "flutter doctor (2)",
+ "timeout": 300
+ },
+ {
+ "cmd": [],
+ "name": "Dismiss dialogs"
+ },
+ {
+ "cmd": [],
+ "name": "Dismiss dialogs.Checkout flutter/cocoon",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python3",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[CACHE]/cocoon",
+ "--url",
+ "https://flutter.googlesource.com/mirrors/cocoon"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Dismiss dialogs.Checkout flutter/cocoon.git setup",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "fetch",
+ "origin",
+ "main",
+ "--recurse-submodules",
+ "--progress",
+ "--tags"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PATH": "RECIPE_REPO[depot_tools]:<PATH>",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Dismiss dialogs.Checkout flutter/cocoon.git fetch",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Dismiss dialogs.Checkout flutter/cocoon.git checkout",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Dismiss dialogs.Checkout flutter/cocoon.read revision",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@",
+ "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Dismiss dialogs.Checkout flutter/cocoon.git clean",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Dismiss dialogs.Checkout flutter/cocoon.submodule sync",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Dismiss dialogs.Checkout flutter/cocoon.submodule update",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "RECIPE_MODULE[flutter::os_utils]/resources/dismiss_dialogs.sh"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Dismiss dialogs.Set execute permission",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "idevice_id",
+ "-l"
+ ],
+ "cwd": "[CACHE]/cocoon/device_doctor/tool/infra-dialog",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Dismiss dialogs.Find device id",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_MODULE[flutter::os_utils]/resources/dismiss_dialogs.sh",
+ ""
+ ],
+ "cwd": "[CACHE]/cocoon/device_doctor/tool/infra-dialog",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Dismiss dialogs.Run app to dismiss dialogs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Shutdown simulators"
+ },
+ {
+ "cmd": [
+ "sudo",
+ "xcrun",
+ "simctl",
+ "shutdown",
+ "all"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Shutdown simulators.Shutdown simulators",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "sudo",
+ "xcrun",
+ "simctl",
+ "erase",
+ "all"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Shutdown simulators.Erase simulators",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ios_debug_symbol_doctor"
+ },
+ {
+ "cmd": [],
+ "name": "ios_debug_symbol_doctor.Checkout flutter/cocoon",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python3",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[CACHE]/cocoon",
+ "--url",
+ "https://flutter.googlesource.com/mirrors/cocoon"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor.Checkout flutter/cocoon.git setup",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "fetch",
+ "origin",
+ "main",
+ "--recurse-submodules",
+ "--progress",
+ "--tags"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PATH": "RECIPE_REPO[depot_tools]:<PATH>",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor.Checkout flutter/cocoon.git fetch",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor.Checkout flutter/cocoon.git checkout",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor.Checkout flutter/cocoon.read revision",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@",
+ "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor.Checkout flutter/cocoon.git clean",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor.Checkout flutter/cocoon.submodule sync",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor.Checkout flutter/cocoon.submodule update",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "dart",
+ "pub",
+ "get"
+ ],
+ "cwd": "[CACHE]/cocoon/device_doctor",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor.pub get device_doctor",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "dart",
+ "[CACHE]/cocoon/device_doctor/bin/ios_debug_symbol_doctor.dart",
+ "diagnose"
+ ],
+ "cwd": "[CACHE]/cocoon/device_doctor",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor.diagnose",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "RECIPE[flutter::devicelab/devicelab_drone].resources/runner.sh"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Set execute permission"
+ },
+ {
+ "cmd": [
+ "RECIPE[flutter::devicelab/devicelab_drone].resources/runner.sh",
+ "-t",
+ "abc",
+ "--results-file",
+ "[CLEANUP]/results_tmp_1/results",
+ "--luci-builder",
+ "Mac_ios abc",
+ "--git-branch",
+ "master"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "run abc",
+ "timeout": 1,
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@test_stdout@@@@",
+ "@@@STEP_LOG_END@test_stdout@@@",
+ "@@@STEP_LOG_LINE@test_stderr@@@@",
+ "@@@STEP_LOG_END@test_stderr@@@",
+ "@@@STEP_FAILURE@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ios_debug_symbol_doctor (2)"
+ },
+ {
+ "cmd": [],
+ "name": "ios_debug_symbol_doctor (2).Checkout flutter/cocoon",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python3",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[CACHE]/cocoon",
+ "--url",
+ "https://flutter.googlesource.com/mirrors/cocoon"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor (2).Checkout flutter/cocoon.git setup",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "fetch",
+ "origin",
+ "main",
+ "--recurse-submodules",
+ "--progress",
+ "--tags"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PATH": "RECIPE_REPO[depot_tools]:<PATH>",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor (2).Checkout flutter/cocoon.git fetch",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor (2).Checkout flutter/cocoon.git checkout",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor (2).Checkout flutter/cocoon.read revision",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@",
+ "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor (2).Checkout flutter/cocoon.git clean",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor (2).Checkout flutter/cocoon.submodule sync",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[CACHE]/cocoon",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor (2).Checkout flutter/cocoon.submodule update",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "dart",
+ "pub",
+ "get"
+ ],
+ "cwd": "[CACHE]/cocoon/device_doctor",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor (2).pub get device_doctor",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "dart",
+ "[CACHE]/cocoon/device_doctor/bin/ios_debug_symbol_doctor.dart",
+ "recover",
+ "--cocoon-root",
+ "[CACHE]/cocoon",
+ "--timeout",
+ "120"
+ ],
+ "cwd": "[CACHE]/cocoon/device_doctor",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor (2).recover with 120 second timeout",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "dart",
+ "[CACHE]/cocoon/device_doctor/bin/ios_debug_symbol_doctor.dart",
+ "diagnose"
+ ],
+ "cwd": "[CACHE]/cocoon/device_doctor",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ios_debug_symbol_doctor (2).diagnose",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "process logs"
+ },
+ {
+ "cmd": [
+ "python3",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "-m",
+ "----",
+ "cp",
+ "-r",
+ "[CLEANUP]/flutter_logs_dir",
+ "gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "glob",
+ "[CLEANUP]/flutter_logs_dir",
+ "*"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "process logs.logs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@glob@[CLEANUP]/flutter_logs_dir/a.txt@@@",
+ "@@@STEP_LOG_END@glob@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "log links",
+ "~followup_annotations": [
+ "@@@STEP_LINK@myfile.txt@https://storage.googleapis.com/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337/myfile.txt@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "listdir",
+ "[CLEANUP]/flutter_logs_dir",
+ "--recursive"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "log links.List logs path",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@listdir@[CLEANUP]/flutter_logs_dir/myfile.txt@@@",
+ "@@@STEP_LOG_END@listdir@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Killing Processes"
+ },
+ {
+ "cmd": [
+ "killall",
+ "-9",
+ "dart"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Killing Processes.kill dart",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "killall",
+ "-9",
+ "flutter"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Killing Processes.kill flutter",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "killall",
+ "-9",
+ "Chrome"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Killing Processes.kill Chrome",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "killall",
+ "-9",
+ "Safari"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Killing Processes.kill Safari",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "killall",
+ "-9",
+ "java"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Killing Processes.kill Safari (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "killall",
+ "-9",
+ "adb"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Killing Processes.kill Safari (3)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "top",
+ "-l",
+ "3",
+ "-o",
+ "mem"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "OS info (2)"
+ },
+ {
+ "cmd": [
+ "xattr",
+ "/opt/s/w/ir/cipd_bin_packages/python3"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "python3 xattr info (2)"
+ },
+ {
+ "cmd": [
+ "xattr",
+ "/opt/s/w/ir/cipd_bin_packages/git"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "git xattr info (2)"
+ },
+ {
+ "cmd": [
+ "echo",
+ "test run is flaky"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "step is flaky: run abc"
+ },
+ {
+ "cmd": [
+ "sudo",
+ "xcode-select",
+ "--reset"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "reset XCode"
+ },
+ {
+ "cmd": [],
+ "name": "Upload metrics"
+ },
+ {
+ "cmd": [
+ "luci-auth",
+ "token",
+ "-scopes",
+ "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/datastore",
+ "-lifetime",
+ "3m"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Upload metrics.get access token for default account",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "extra.secret.token.should.not.be.logged",
+ "[CLEANUP]/tmp_tmp_3"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Upload metrics.write metric center token",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "luci-auth",
+ "token",
+ "-lifetime",
+ "3m"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Upload metrics.get access token for default account (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "extra.secret.token.should.not.be.logged",
+ "[CLEANUP]/tmp_tmp_4"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Upload metrics.write cocoon token",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "dart",
+ "bin/test_runner.dart",
+ "upload-metrics",
+ "--test-flaky",
+ "True",
+ "--builder-bucket",
+ "ci",
+ "--git-branch",
+ "master",
+ "--luci-builder",
+ "Mac_ios abc",
+ "--test-status",
+ "Succeeded",
+ "--service-account-token-file",
+ "[CLEANUP]/tmp_tmp_4"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GCP_PROJECT": "flutter-infra",
+ "GIT_BRANCH": "master",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
+ "TOKEN_PATH": "[CLEANUP]/tmp_tmp_3",
+ "USE_EMULATOR": null
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Upload metrics.upload results",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipes/devicelab/devicelab_drone.py b/recipes/devicelab/devicelab_drone.py
index d641907..7d0fdfc 100644
--- a/recipes/devicelab/devicelab_drone.py
+++ b/recipes/devicelab/devicelab_drone.py
@@ -214,6 +214,11 @@
timeout_secs=test_timeout_secs,
suppress_log=suppress_log,
)
+ except api.step.StepFailure as failure:
+ test_status = 'flaky'
+ if failure.had_timeout:
+ # presumably diagnosis already ran and passed, but let's open Xcode anyway
+ api.os_utils.ios_debug_symbol_doctor(diagnose_first=False)
finally:
debug_after_failure(api, task_name)
if test_status == 'flaky':
@@ -412,6 +417,31 @@
)
)
yield api.test(
+ "xcode-devicelab-timeout",
+ api.properties(
+ buildername='Mac_ios abc',
+ task_name='abc',
+ tags=['ios'],
+ dependencies=[{'dependency': 'xcode'}],
+ test_timeout_secs=1,
+ git_branch='master',
+ **{'$flutter/devicelab_osx_sdk': {
+ 'sdk_version': 'deadbeef',
+ }}
+ ), api.repo_util.flutter_environment_data(checkout_dir=checkout_path),
+ api.platform.name('mac'),
+ api.buildbucket.ci_build(git_ref='refs/heads/master',),
+ api.step_data(
+ 'Find device type',
+ stdout=api.raw_io.output_text('iPhone8,1'),
+ ),
+ api.step_data(
+ 'run abc',
+ times_out_after=2,
+ had_timeout=True,
+ ), api.swarming.properties(bot_id='flutter-devicelab-mac-1'),
+ )
+ yield api.test(
"xcode-chromium-mac",
api.properties(
buildername='Mac_ios abc',