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',