Add android avd to flutter_deps, deferred components recipe and convert android_views and scenarios to the new dep.
Based off of https://flutter-review.googlesource.com/c/recipes/+/16580
Sample led runs: https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/garyq_google.com/8706d069c744c1c278e5eaf3795af60ff3338ba6dc77aebf02c18419f9e6300e/+/build.proto?server=chromium-swarm.appspot.com
https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/garyq_google.com/3c55fc760ccf46ea11c8b3cb09da6b7a02f90a7caf4917664656c881414522f0/+/build.proto?server=chromium-swarm.appspot.com
Change-Id: Ia7693af0df55d2e68ee8f0cbf3c1a59b9119a17e
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/17280
Commit-Queue: Gary Qian <garyq@google.com>
Reviewed-by: Emmanuel Garcia <egarciad@google.com>
Reviewed-by: Godofredo Contreras <godofredoc@google.com>
Reviewed-by: Casey Hillers <chillers@google.com>
diff --git a/cat b/cat
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/cat
diff --git a/recipe_modules/android_virtual_device/__init__.py b/recipe_modules/android_virtual_device/__init__.py
new file mode 100644
index 0000000..7641e6e
--- /dev/null
+++ b/recipe_modules/android_virtual_device/__init__.py
@@ -0,0 +1,13 @@
+DEPS = [
+ 'depot_tools/depot_tools',
+ 'flutter/repo_util',
+ 'flutter/test_utils',
+ 'recipe_engine/cipd',
+ 'recipe_engine/context',
+ 'recipe_engine/file',
+ 'recipe_engine/path',
+ 'recipe_engine/platform',
+ 'recipe_engine/python',
+ 'recipe_engine/raw_io',
+ 'recipe_engine/step',
+]
diff --git a/recipe_modules/android_virtual_device/api.py b/recipe_modules/android_virtual_device/api.py
new file mode 100644
index 0000000..917a521
--- /dev/null
+++ b/recipe_modules/android_virtual_device/api.py
@@ -0,0 +1,117 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+import re
+from contextlib import contextmanager
+from recipe_engine import recipe_api
+
+
+class AndroidVirtualDeviceApi(recipe_api.RecipeApi):
+ """Installs and manages an Android AVD.
+ """
+
+ def download(self, avd_root, env, env_prefixes, version=None):
+ """Installs the android avd emulator package.
+
+ Args:
+ env(dict): Current environment variables.
+ env_prefixes(dict): Current environment prefixes variables.
+ avd_root: The root path to install the AVD package.
+ """
+ assert self.m.platform.is_linux
+ self.avd_root = avd_root
+ self.version = version
+ with self.m.step.nest('download avd package'):
+ self.m.file.ensure_directory('Ensure avd cache', self.avd_root)
+ with self.m.context(env=env, env_prefixes=env_prefixes, cwd=self.avd_root), self.m.depot_tools.on_path():
+ # Download and install AVD
+ self.m.cipd.ensure(
+ self.avd_root,
+ self.m.cipd.EnsureFile().add_package(
+ 'chromium/tools/android/avd/linux-amd64',
+ 'p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC'
+ )
+ )
+
+ adb_root = self.avd_root.join(
+ 'src', 'third_party', 'android_sdk', 'public', 'platform-tools'
+ )
+ self.adb_path = adb_root.join('adb')
+ paths = env_prefixes.get('PATH', [])
+ paths.append(adb_root)
+ env_prefixes['PATH'] = paths
+ env['AVD_ROOT'] = self.avd_root
+ env['ADB_PATH'] = self.adb_path
+
+ def start(self, env, env_prefixes, version=None):
+ """Starts an android avd emulator.
+
+ Args:
+ env(dict): Current environment variables.
+ env_prefixes(dict): Current environment prefixes variables.
+ version(string): The android API version of the emulator as a string.
+ """
+ self.version = version or self.version or '31'
+ self.emulator_pid = ''
+ with self.m.step.nest('start avd'):
+ with self.m.context(env=env, env_prefixes=env_prefixes, cwd=self.avd_root), self.m.depot_tools.on_path():
+ avd_script_path = self.avd_root.join(
+ 'src', 'tools', 'android', 'avd', 'avd.py'
+ )
+ avd_config = self.avd_root.join(
+ 'src', 'tools', 'android', 'avd', 'proto', 'generic_android%s.textpb' % self.version
+ )
+ self.m.python(
+ 'Install Android emulator (API level %s)' % self.version, avd_script_path,
+ ['install', '--avd-config', avd_config]
+ )
+ output = self.m.python(
+ 'Start Android emulator (API level %s)' % self.version,
+ avd_script_path,
+ ['start', '--no-read-only', '--writable-system', '--avd-config', avd_config],
+ stdout=self.m.raw_io.output()
+ ).stdout
+ m = re.match('.*pid: (\d+)\)', output)
+ self.emulator_pid = m.group(1)
+ env['EMULATOR_PID'] = self.emulator_pid
+ return self.emulator_pid
+
+ def setup(self, env, env_prefixes):
+ """Configures a running emulator and waits for it to reach the home screen.
+
+ Args:
+ env(dict): Current environment variables.
+ env_prefixes(dict): Current environment prefixes variables.
+ """
+ with self.m.step.nest('avd setup'):
+ with self.m.context(env=env, env_prefixes=env_prefixes, cwd=self.avd_root):
+ # Only supported on linux. Do not run this on other platforms.
+ resource_name = self.resource('avd_setup.sh')
+ self.m.step(
+ 'Set execute permission',
+ ['chmod', '755', resource_name],
+ infra_step=True,
+ )
+ self.m.test_utils.run_test('avd_setup.sh', [resource_name, str(self.adb_path)])
+
+ def kill(self, emulator_pid=None):
+ """Kills the emulator and cleans up any zombie QEMU processes.
+
+ Args:
+ emulator_pid(string): The PID of the emulator process.
+ """
+ assert self.m.platform.is_linux
+ with self.m.step.nest('kill and cleanup avd'):
+ pid_to_kill = emulator_pid or self.emulator_pid
+ self.m.step('Kill emulator cleanup', ['kill', '-9', pid_to_kill])
+
+ # Kill zombie processes left over by QEMU on the host.
+ step_result = self.m.step('list processes', ['ps', '-axww'], stdout=self.m.raw_io.output())
+ zombieList = ['qemu-system']
+ killCommand = ['kill', '-9']
+ for line in step_result.stdout.splitlines():
+ # Check if current process has zombie process substring.
+ if any(zombie in line for zombie in zombieList):
+ killCommand.append(line.split(None, 1)[0])
+ if len(killCommand) > 2:
+ self.m.step('Kill zombie processes', killCommand)
diff --git a/recipe_modules/android_virtual_device/examples/full.expected/demo zombie processes.json b/recipe_modules/android_virtual_device/examples/full.expected/demo zombie processes.json
new file mode 100644
index 0000000..26ee737
--- /dev/null
+++ b/recipe_modules/android_virtual_device/examples/full.expected/demo zombie processes.json
@@ -0,0 +1,224 @@
+[
+ {
+ "cmd": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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": [],
+ "name": "start avd"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "AVD_ROOT": "[CACHE]/builder/avd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Install Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--writable-system",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "AVD_ROOT": "[CACHE]/builder/avd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Start Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "avd setup"
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "infra_step": true,
+ "name": "avd setup.Set execute permission",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "name": "avd setup.avd_setup.sh",
+ "timeout": 3600,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@test_stdout@@@@",
+ "@@@STEP_LOG_END@test_stdout@@@",
+ "@@@STEP_LOG_LINE@test_stderr@@@@",
+ "@@@STEP_LOG_END@test_stderr@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "kill and cleanup avd"
+ },
+ {
+ "cmd": [
+ "kill",
+ "-9",
+ "17687"
+ ],
+ "name": "kill and cleanup avd.Kill emulator cleanup",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "ps",
+ "-axww"
+ ],
+ "name": "kill and cleanup avd.list processes",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "kill",
+ "-9",
+ "12345"
+ ],
+ "name": "kill and cleanup avd.Kill zombie processes",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/android_virtual_device/examples/full.expected/demo.json b/recipe_modules/android_virtual_device/examples/full.expected/demo.json
new file mode 100644
index 0000000..223bc55
--- /dev/null
+++ b/recipe_modules/android_virtual_device/examples/full.expected/demo.json
@@ -0,0 +1,213 @@
+[
+ {
+ "cmd": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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": [],
+ "name": "start avd"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "AVD_ROOT": "[CACHE]/builder/avd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Install Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--writable-system",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "AVD_ROOT": "[CACHE]/builder/avd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Start Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "avd setup"
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "infra_step": true,
+ "name": "avd setup.Set execute permission",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "name": "avd setup.avd_setup.sh",
+ "timeout": 3600,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@test_stdout@@@@",
+ "@@@STEP_LOG_END@test_stdout@@@",
+ "@@@STEP_LOG_LINE@test_stderr@@@@",
+ "@@@STEP_LOG_END@test_stderr@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "kill and cleanup avd"
+ },
+ {
+ "cmd": [
+ "kill",
+ "-9",
+ "17687"
+ ],
+ "name": "kill and cleanup avd.Kill emulator cleanup",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "ps",
+ "-axww"
+ ],
+ "name": "kill and cleanup avd.list processes",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/android_virtual_device/examples/full.py b/recipe_modules/android_virtual_device/examples/full.py
new file mode 100644
index 0000000..fd3522e
--- /dev/null
+++ b/recipe_modules/android_virtual_device/examples/full.py
@@ -0,0 +1,60 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+DEPS = [
+ 'android_virtual_device',
+ 'recipe_engine/context',
+ 'recipe_engine/path',
+ 'recipe_engine/properties',
+ 'recipe_engine/raw_io',
+ 'recipe_engine/step',
+]
+
+def RunSteps(api):
+ env = {}
+ env_prefixes = {}
+ avd_root = api.path['cache'].join('builder', 'avd')
+ api.android_virtual_device.download(
+ avd_root=avd_root,
+ env=env,
+ env_prefixes=env_prefixes,
+ version='31'
+ )
+ api.android_virtual_device.start(
+ env=env,
+ env_prefixes=env_prefixes,
+ )
+ api.android_virtual_device.setup(
+ env=env,
+ env_prefixes=env_prefixes,
+ )
+ api.android_virtual_device.kill()
+
+
+def GenTests(api):
+ avd_api_version = '31'
+ yield api.test(
+ 'demo',
+ api.step_data(
+ 'start avd.Start Android emulator (API level %s)' % avd_api_version,
+ stdout=api.raw_io.output_text(
+ 'android_' + avd_api_version + '_google_apis_x86|emulator-5554 started (pid: 17687)'
+ )
+ ),
+ )
+ yield api.test(
+ 'demo zombie processes',
+ api.step_data(
+ 'start avd.Start Android emulator (API level %s)' % avd_api_version,
+ stdout=api.raw_io.output_text(
+ 'android_' + avd_api_version + '_google_apis_x86|emulator-5554 started (pid: 17687)'
+ )
+ ),
+ api.step_data(
+ 'kill and cleanup avd.list processes',
+ stdout=api.raw_io.output_text(
+ '12345 qemu-system blah'
+ )
+ ),
+ )
diff --git a/recipe_modules/android_virtual_device/resources/avd_setup.sh b/recipe_modules/android_virtual_device/resources/avd_setup.sh
new file mode 100644
index 0000000..c0c452d
--- /dev/null
+++ b/recipe_modules/android_virtual_device/resources/avd_setup.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# Script to ensure the avd is set up for testing.
+#
+# Usage: ./avd_setup.sh <path-to-adb-executable>
+
+$1 kill-server
+$1 start-server
+$1 wait-for-device
+# Wait for avd to reach home screen
+$1 -s emulator-5554 shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done;'
+$1 devices
+# Set the density DPI
+$1 shell wm density 400
+# unlock avd
+$1 shell input keyevent 82
+# Ensure developer mode is enabled
+$1 shell settings put global development_settings_enabled 1
+# Enable MTP file transfer
+$1 shell svc usb setFunctions mtp
diff --git a/recipe_modules/flutter_deps/__init__.py b/recipe_modules/flutter_deps/__init__.py
index 756f6b5..9c1ba9e 100644
--- a/recipe_modules/flutter_deps/__init__.py
+++ b/recipe_modules/flutter_deps/__init__.py
@@ -1,6 +1,9 @@
DEPS = [
+ 'depot_tools/depot_tools',
'flutter/android_sdk',
+ 'flutter/android_virtual_device',
'flutter/repo_util',
+ 'flutter/test_utils',
'fuchsia/archive',
'recipe_engine/cas',
'recipe_engine/cipd',
@@ -9,5 +12,6 @@
'recipe_engine/path',
'recipe_engine/platform',
'recipe_engine/properties',
+ 'recipe_engine/python',
'recipe_engine/step',
]
diff --git a/recipe_modules/flutter_deps/api.py b/recipe_modules/flutter_deps/api.py
index 339daab..831c37c9 100644
--- a/recipe_modules/flutter_deps/api.py
+++ b/recipe_modules/flutter_deps/api.py
@@ -54,6 +54,7 @@
"""
available_deps = {
'android_sdk': self.android_sdk,
+ 'android_virtual_device': self.android_virtual_device,
'certs': self.certs,
'chrome_and_driver': self.chrome_and_driver,
'clang': self.clang,
@@ -474,3 +475,14 @@
temp_paths = copy.deepcopy(paths)
temp_paths.append(gem_dir.join('bin'))
env_prefixes['PATH'] = temp_paths
+
+ def android_virtual_device(self, env, env_prefixes, version=None):
+ """Installs and starts an android avd emulator.
+
+ Args:
+ env(dict): Current environment variables.
+ env_prefixes(dict): Current environment prefixes variables.
+ version: Android API version of the avd.
+ """
+ avd_root = self.m.path['cache'].join('builder', 'avd')
+ self.m.android_virtual_device.download(avd_root, env, env_prefixes, version)
diff --git a/recipe_modules/flutter_deps/examples/full.expected/basic.json b/recipe_modules/flutter_deps/examples/full.expected/basic.json
index ff7eef2..0f387c0 100644
--- a/recipe_modules/flutter_deps/examples/full.expected/basic.json
+++ b/recipe_modules/flutter_deps/examples/full.expected/basic.json
@@ -549,6 +549,97 @@
]
},
{
+ "cmd": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+ "CHROME_NO_SANDBOX": "true",
+ "FLUTTER_XCODE_CODE_SIGN_STYLE": "Manual",
+ "FLUTTER_XCODE_DEVELOPMENT_TEAM": "S8QB4VV633",
+ "FLUTTER_XCODE_PROVISIONING_PROFILE_SPECIFIER": "match Development *",
+ "GEM_HOME": "[START_DIR]/gems",
+ "GOPATH": "[CLEANUP]/go_path",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/dart_sdk",
+ "[CACHE]/chrome/chrome",
+ "[CACHE]/chrome/drivers",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CLEANUP]/tmp_tmp_1/vpython",
+ "[START_DIR]/firebase",
+ "[CACHE]/cmake/bin",
+ "[CACHE]/ninja",
+ "[CACHE]/clang/bin",
+ "[CLEANUP]/tmp_tmp_2/curl",
+ "[START_DIR]/gems/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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@@@"
+ ]
+ },
+ {
"name": "$result"
}
]
\ No newline at end of file
diff --git a/recipe_modules/flutter_deps/examples/full.expected/flutter_engine.json b/recipe_modules/flutter_deps/examples/full.expected/flutter_engine.json
index 6e15e3b..bbc7ae4 100644
--- a/recipe_modules/flutter_deps/examples/full.expected/flutter_engine.json
+++ b/recipe_modules/flutter_deps/examples/full.expected/flutter_engine.json
@@ -633,6 +633,99 @@
]
},
{
+ "cmd": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+ "CHROME_NO_SANDBOX": "true",
+ "FLUTTER_XCODE_CODE_SIGN_STYLE": "Manual",
+ "FLUTTER_XCODE_DEVELOPMENT_TEAM": "S8QB4VV633",
+ "FLUTTER_XCODE_PROVISIONING_PROFILE_SPECIFIER": "match Development *",
+ "GEM_HOME": "[START_DIR]/gems",
+ "GOPATH": "[CLEANUP]/go_path",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LOCAL_ENGINE": "[CLEANUP]/builder/src/out/host_debug_unopt"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/dart_sdk",
+ "[CLEANUP]/builder/src/out/host_debug_unopt/dart-sdk/bin",
+ "[CACHE]/chrome/chrome",
+ "[CACHE]/chrome/drivers",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CLEANUP]/tmp_tmp_1/vpython",
+ "[START_DIR]/firebase",
+ "[CACHE]/cmake/bin",
+ "[CACHE]/ninja",
+ "[CACHE]/clang/bin",
+ "[CLEANUP]/tmp_tmp_2/curl",
+ "[START_DIR]/gems/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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@@@"
+ ]
+ },
+ {
"name": "$result"
}
]
\ No newline at end of file
diff --git a/recipe_modules/flutter_deps/examples/full.expected/goldTryjob.json b/recipe_modules/flutter_deps/examples/full.expected/goldTryjob.json
index ff7eef2..0f387c0 100644
--- a/recipe_modules/flutter_deps/examples/full.expected/goldTryjob.json
+++ b/recipe_modules/flutter_deps/examples/full.expected/goldTryjob.json
@@ -549,6 +549,97 @@
]
},
{
+ "cmd": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+ "CHROME_NO_SANDBOX": "true",
+ "FLUTTER_XCODE_CODE_SIGN_STYLE": "Manual",
+ "FLUTTER_XCODE_DEVELOPMENT_TEAM": "S8QB4VV633",
+ "FLUTTER_XCODE_PROVISIONING_PROFILE_SPECIFIER": "match Development *",
+ "GEM_HOME": "[START_DIR]/gems",
+ "GOPATH": "[CLEANUP]/go_path",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/dart_sdk",
+ "[CACHE]/chrome/chrome",
+ "[CACHE]/chrome/drivers",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CLEANUP]/tmp_tmp_1/vpython",
+ "[START_DIR]/firebase",
+ "[CACHE]/cmake/bin",
+ "[CACHE]/ninja",
+ "[CACHE]/clang/bin",
+ "[CLEANUP]/tmp_tmp_2/curl",
+ "[START_DIR]/gems/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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@@@"
+ ]
+ },
+ {
"name": "$result"
}
]
\ No newline at end of file
diff --git a/recipe_modules/flutter_deps/examples/full.expected/linux.json b/recipe_modules/flutter_deps/examples/full.expected/linux.json
new file mode 100644
index 0000000..0f387c0
--- /dev/null
+++ b/recipe_modules/flutter_deps/examples/full.expected/linux.json
@@ -0,0 +1,645 @@
+[
+ {
+ "cmd": [],
+ "name": "OpenJDK dependency"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/java",
+ "-ensure-file",
+ "flutter_internal/java/openjdk/${platform} v1",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "OpenJDK dependency.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-v1--------------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"flutter_internal/java/openjdk/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": [],
+ "name": "Download goldctl"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/gold",
+ "-ensure-file",
+ "skia/tools/goldctl/${platform} v2",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "Download goldctl.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-v2--------------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"skia/tools/goldctl/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": [],
+ "name": "Chrome and driver dependency"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/chrome/chrome",
+ "-ensure-file",
+ "flutter_internal/browsers/chrome/${platform} v3",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "Chrome and driver dependency.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-v3--------------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"flutter_internal/browsers/chrome/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": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/chrome/drivers",
+ "-ensure-file",
+ "flutter_internal/browser-drivers/chrome/${platform} v3",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "Chrome and driver dependency.ensure_installed (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-v3--------------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"flutter_internal/browser-drivers/chrome/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": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/go",
+ "-ensure-file",
+ "infra/go/${platform} v4",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "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-v4--------------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/go/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": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CLEANUP]/go_path"
+ ],
+ "infra_step": true,
+ "name": "Ensure go path"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/go",
+ "-ensure-file",
+ "infra/go/${platform} latest",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "ensure_installed (2)",
+ "~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/go/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": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CLEANUP]/go_path"
+ ],
+ "infra_step": true,
+ "name": "Ensure go path (2)"
+ },
+ {
+ "cmd": [
+ "go",
+ "get",
+ "-u",
+ "github.com/technosophos/dashing"
+ ],
+ "env": {
+ "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+ "CHROME_NO_SANDBOX": "true",
+ "GOPATH": "[CLEANUP]/go_path"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/chrome/chrome",
+ "[CACHE]/chrome/drivers",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin"
+ ]
+ },
+ "infra_step": true,
+ "name": "Install dashing"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CLEANUP]/tmp_tmp_1/vpython",
+ "-ensure-file",
+ "infra/tools/luci/vpython/${platform} v6",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "ensure_installed (3)",
+ "~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-v6--------------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/vpython/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": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/android",
+ "-ensure-file",
+ "flutter_internal/android/sdk/${platform} latest",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "ensure_installed (4)",
+ "~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\": \"flutter_internal/android/sdk/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": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/firebase"
+ ],
+ "infra_step": true,
+ "name": "ensure directory"
+ },
+ {
+ "cmd": [],
+ "name": "Install firebase"
+ },
+ {
+ "cmd": [
+ "curl",
+ "-Lo",
+ "[START_DIR]/firebase/firebase",
+ "https://firebase.tools/bin/linux/latest"
+ ],
+ "infra_step": true,
+ "name": "Install firebase.Install firebase bin",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "[START_DIR]/firebase/firebase"
+ ],
+ "infra_step": true,
+ "name": "Install firebase.Set execute permission",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Install cmake"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/cmake",
+ "-ensure-file",
+ "infra/cmake/${platform} version:3.16.1",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "Install cmake.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:3.16.1--\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/cmake/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": [],
+ "name": "Install ninja"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/ninja",
+ "-ensure-file",
+ "infra/ninja/${platform} version:1.9.0",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "Install ninja.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:1.9.0---\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/ninja/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": [],
+ "name": "Install clang"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/clang",
+ "-ensure-file",
+ "fuchsia/third_party/clang/${platform} git_revision:7e9747b50bcb1be28d4a3236571e8050835497a6",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "Install clang.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-git_revision:7e9\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/clang/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": [],
+ "name": "Prepare code signing"
+ },
+ {
+ "cmd": [
+ "unlock_login_keychain.sh"
+ ],
+ "infra_step": true,
+ "name": "Prepare code signing.unlock login keychain",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CLEANUP]/tmp_tmp_2/curl",
+ "-ensure-file",
+ "flutter_internal/tools/curl/${platform} latest",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "ensure_installed (5)",
+ "~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\": \"flutter_internal/tools/curl/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": [],
+ "name": "Install dart sdk"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/dart_sdk",
+ "-ensure-file",
+ "dart/dart-sdk/${platform} stable",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "Install dart sdk.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-stable----------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"dart/dart-sdk/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": [],
+ "name": "Install jazzy"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/gems"
+ ],
+ "infra_step": true,
+ "name": "Install jazzy.mkdir gems",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "gem",
+ "install",
+ "jazzy:0.9.5",
+ "--install-dir",
+ "."
+ ],
+ "cwd": "[START_DIR]/gems",
+ "name": "Install jazzy.install jazzy",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+ "CHROME_NO_SANDBOX": "true",
+ "FLUTTER_XCODE_CODE_SIGN_STYLE": "Manual",
+ "FLUTTER_XCODE_DEVELOPMENT_TEAM": "S8QB4VV633",
+ "FLUTTER_XCODE_PROVISIONING_PROFILE_SPECIFIER": "match Development *",
+ "GEM_HOME": "[START_DIR]/gems",
+ "GOPATH": "[CLEANUP]/go_path",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/dart_sdk",
+ "[CACHE]/chrome/chrome",
+ "[CACHE]/chrome/drivers",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CLEANUP]/tmp_tmp_1/vpython",
+ "[START_DIR]/firebase",
+ "[CACHE]/cmake/bin",
+ "[CACHE]/ninja",
+ "[CACHE]/clang/bin",
+ "[CLEANUP]/tmp_tmp_2/curl",
+ "[START_DIR]/gems/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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@@@"
+ ]
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/flutter_deps/examples/full.expected/local_engine_cas.json b/recipe_modules/flutter_deps/examples/full.expected/local_engine_cas.json
index 6e15e3b..5bf8f8b 100644
--- a/recipe_modules/flutter_deps/examples/full.expected/local_engine_cas.json
+++ b/recipe_modules/flutter_deps/examples/full.expected/local_engine_cas.json
@@ -633,6 +633,99 @@
]
},
{
+ "cmd": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+ "CHROME_NO_SANDBOX": "true",
+ "FLUTTER_XCODE_CODE_SIGN_STYLE": "Manual",
+ "FLUTTER_XCODE_DEVELOPMENT_TEAM": "S8QB4VV633",
+ "FLUTTER_XCODE_PROVISIONING_PROFILE_SPECIFIER": "match Development *",
+ "GEM_HOME": "[START_DIR]/gems",
+ "GOPATH": "[CLEANUP]/go_path",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LOCAL_ENGINE": "[CLEANUP]/builder/src/out/host-release"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/dart_sdk",
+ "[CLEANUP]/builder/src/out/host-release/dart-sdk/bin",
+ "[CACHE]/chrome/chrome",
+ "[CACHE]/chrome/drivers",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CLEANUP]/tmp_tmp_1/vpython",
+ "[START_DIR]/firebase",
+ "[CACHE]/cmake/bin",
+ "[CACHE]/ninja",
+ "[CACHE]/clang/bin",
+ "[CLEANUP]/tmp_tmp_2/curl",
+ "[START_DIR]/gems/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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@@@"
+ ]
+ },
+ {
"name": "$result"
}
]
\ No newline at end of file
diff --git a/recipe_modules/flutter_deps/examples/full.expected/with-gems.json b/recipe_modules/flutter_deps/examples/full.expected/with-gems.json
index 4f83c4c..354e947 100644
--- a/recipe_modules/flutter_deps/examples/full.expected/with-gems.json
+++ b/recipe_modules/flutter_deps/examples/full.expected/with-gems.json
@@ -550,6 +550,97 @@
},
{
"cmd": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+ "CHROME_NO_SANDBOX": "true",
+ "FLUTTER_XCODE_CODE_SIGN_STYLE": "Manual",
+ "FLUTTER_XCODE_DEVELOPMENT_TEAM": "S8QB4VV633",
+ "FLUTTER_XCODE_PROVISIONING_PROFILE_SPECIFIER": "match Development *",
+ "GEM_HOME": "[START_DIR]/gems",
+ "GOPATH": "[CLEANUP]/go_path",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/dart_sdk",
+ "[CACHE]/chrome/chrome",
+ "[CACHE]/chrome/drivers",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CACHE]/go/bin",
+ "[CLEANUP]/go_path/bin",
+ "[CLEANUP]/tmp_tmp_1/vpython",
+ "[START_DIR]/firebase",
+ "[CACHE]/cmake/bin",
+ "[CACHE]/ninja",
+ "[CACHE]/clang/bin",
+ "[CLEANUP]/tmp_tmp_2/curl",
+ "[START_DIR]/gems/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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": [],
"name": "Install gems"
},
{
diff --git a/recipe_modules/flutter_deps/examples/full.py b/recipe_modules/flutter_deps/examples/full.py
index 80cfea5..3e8f6f1 100644
--- a/recipe_modules/flutter_deps/examples/full.py
+++ b/recipe_modules/flutter_deps/examples/full.py
@@ -12,6 +12,7 @@
'recipe_engine/path',
'recipe_engine/platform',
'recipe_engine/properties',
+ 'recipe_engine/raw_io',
]
@@ -58,6 +59,8 @@
api.flutter_deps.certs(env, env_prefixes, '')
api.flutter_deps.vs_build(env, env_prefixes, '')
api.flutter_deps.jazzy(env, env_prefixes, '')
+ if api.platform.is_linux:
+ api.flutter_deps.android_virtual_device(env, env_prefixes, '31')
# Gems dependency requires to run from a flutter_environment.
checkout_path = api.path['start_dir'].join('flutter\ sdk')
@@ -69,10 +72,19 @@
def GenTests(api):
checkout_path = api.path['start_dir'].join('flutter\ sdk')
- yield api.test('basic', api.repo_util.flutter_environment_data(checkout_path))
+ avd_api_version = '31'
+ yield api.test(
+ 'basic',
+ api.repo_util.flutter_environment_data(checkout_path),
+ )
+ yield api.test(
+ 'linux',
+ api.platform('linux', 64),
+ api.repo_util.flutter_environment_data(checkout_path),
+ )
yield api.test(
'with-gems', api.properties(dependencies=[{"dependency": "gems"}]),
- api.repo_util.flutter_environment_data(checkout_path)
+ api.repo_util.flutter_environment_data(checkout_path),
)
yield api.test(
@@ -93,20 +105,20 @@
)
yield api.test(
'flutter_engine', api.properties(local_engine_cas_hash='abceqwe/7',),
- api.repo_util.flutter_environment_data(checkout_path)
+ api.repo_util.flutter_environment_data(checkout_path),
)
yield api.test(
'local_engine_cas', api.properties(local_engine_cas_hash='abceqwe/7',
local_engine='host-release'),
- api.repo_util.flutter_environment_data(checkout_path)
+ api.repo_util.flutter_environment_data(checkout_path),
)
yield api.test(
'goldTryjob',
api.properties(gold_tryjob=True, git_ref='refs/pull/1/head'),
- api.repo_util.flutter_environment_data(checkout_path)
+ api.repo_util.flutter_environment_data(checkout_path),
)
yield api.test(
'windows', api.properties(gold_tryjob=True, git_ref='refs/pull/1/head'),
api.repo_util.flutter_environment_data(checkout_path),
- api.platform.name('win')
+ api.platform.name('win'),
)
diff --git a/recipes/engine/scenarios.expected/with_failure_upload_0.json b/recipes/engine/scenarios.expected/with_failure_upload_0.json
index 2ea65ee..2b3e53f 100644
--- a/recipes/engine/scenarios.expected/with_failure_upload_0.json
+++ b/recipes/engine/scenarios.expected/with_failure_upload_0.json
@@ -75,6 +75,215 @@
},
{
"cmd": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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": [],
+ "name": "start avd"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Install Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--writable-system",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Start Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "avd setup"
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "infra_step": true,
+ "name": "avd setup.Set execute permission",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "name": "avd setup.avd_setup.sh",
+ "timeout": 3600,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@test_stdout@@@@",
+ "@@@STEP_LOG_END@test_stdout@@@",
+ "@@@STEP_LOG_LINE@test_stderr@@@@",
+ "@@@STEP_LOG_END@test_stderr@@@"
+ ]
+ },
+ {
+ "cmd": [],
"name": "Checkout source code"
},
{
@@ -99,8 +308,11 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS_REPORT_BUILD": "flutter/ci/Linux Engine/8945511751514863184",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GIT_HTTP_LOW_SPEED_LIMIT": "102400",
"GIT_HTTP_LOW_SPEED_TIME": "1800",
@@ -108,7 +320,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -171,14 +384,18 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS_REPORT_BUILD": "flutter/ci/Linux Engine/8945511751514863184",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -206,13 +423,17 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -238,7 +459,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -254,7 +478,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -281,7 +506,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -289,7 +517,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -316,7 +545,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -332,7 +564,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -368,7 +601,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -384,7 +620,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -409,7 +646,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -425,7 +665,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -454,7 +695,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -462,7 +706,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -494,7 +739,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -502,7 +750,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -549,7 +798,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -557,7 +809,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -589,7 +842,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -597,7 +853,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -633,7 +890,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -641,7 +901,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -659,127 +920,23 @@
},
{
"cmd": [
- "cipd",
- "ensure",
- "-root",
- "[CACHE]/builder/src/tools/android",
- "-ensure-file",
- "chromium/tools/android/avd/linux-amd64 e5JfdaCjazDFh5uqhkPgVeZa9oCLVimm5_8TWAENz1gC",
- "-max-threads",
- "0",
- "-json-output",
- "/path/to/tmp/json"
- ],
- "cwd": "[CACHE]/builder",
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "FLUTTER_PREBUILT_DART_SDK": "True",
- "GOMA_DIR": "[CACHE]/goma/client"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "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-e5JfdaCjazDFh5uq\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
- "@@@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": [
- "python",
- "-u",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
- "install",
- "--avd-config",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android30.textpb"
- ],
- "cwd": "[CACHE]/builder/src/tools/android",
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "FLUTTER_PREBUILT_DART_SDK": "True",
- "GOMA_DIR": "[CACHE]/goma/client"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "Install Android emulator (API level 30)"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
- "start",
- "--no-read-only",
- "--avd-config",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android30.textpb"
- ],
- "cwd": "[CACHE]/builder/src/tools/android",
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "FLUTTER_PREBUILT_DART_SDK": "True",
- "GOMA_DIR": "[CACHE]/goma/client"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "Start Android emulator (API level 30)"
- },
- {
- "cmd": [
"./run_android_tests.sh",
"android_debug_x86"
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -800,14 +957,18 @@
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -828,14 +989,18 @@
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -861,14 +1026,18 @@
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
diff --git a/recipes/engine/scenarios.expected/with_failure_upload_1.json b/recipes/engine/scenarios.expected/with_failure_upload_1.json
index 29bdd06..bb84935 100644
--- a/recipes/engine/scenarios.expected/with_failure_upload_1.json
+++ b/recipes/engine/scenarios.expected/with_failure_upload_1.json
@@ -75,6 +75,215 @@
},
{
"cmd": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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": [],
+ "name": "start avd"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Install Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--writable-system",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Start Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "avd setup"
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "infra_step": true,
+ "name": "avd setup.Set execute permission",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "name": "avd setup.avd_setup.sh",
+ "timeout": 3600,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@test_stdout@@@@",
+ "@@@STEP_LOG_END@test_stdout@@@",
+ "@@@STEP_LOG_LINE@test_stderr@@@@",
+ "@@@STEP_LOG_END@test_stderr@@@"
+ ]
+ },
+ {
+ "cmd": [],
"name": "Checkout source code"
},
{
@@ -99,8 +308,11 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS_REPORT_BUILD": "flutter/ci/Linux Engine/8945511751514863184",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GIT_HTTP_LOW_SPEED_LIMIT": "102400",
"GIT_HTTP_LOW_SPEED_TIME": "1800",
@@ -108,7 +320,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -171,14 +384,18 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS_REPORT_BUILD": "flutter/ci/Linux Engine/8945511751514863184",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -206,13 +423,17 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -238,7 +459,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -254,7 +478,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -281,7 +506,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -289,7 +517,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -316,7 +545,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -332,7 +564,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -368,7 +601,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -384,7 +620,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -409,7 +646,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -425,7 +665,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -454,7 +695,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -462,7 +706,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -494,7 +739,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -502,7 +750,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -549,7 +798,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -557,7 +809,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -589,7 +842,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -597,7 +853,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -633,7 +890,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -641,7 +901,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -659,127 +920,23 @@
},
{
"cmd": [
- "cipd",
- "ensure",
- "-root",
- "[CACHE]/builder/src/tools/android",
- "-ensure-file",
- "chromium/tools/android/avd/linux-amd64 e5JfdaCjazDFh5uqhkPgVeZa9oCLVimm5_8TWAENz1gC",
- "-max-threads",
- "0",
- "-json-output",
- "/path/to/tmp/json"
- ],
- "cwd": "[CACHE]/builder",
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "FLUTTER_PREBUILT_DART_SDK": "True",
- "GOMA_DIR": "[CACHE]/goma/client"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "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-e5JfdaCjazDFh5uq\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
- "@@@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": [
- "python",
- "-u",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
- "install",
- "--avd-config",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android30.textpb"
- ],
- "cwd": "[CACHE]/builder/src/tools/android",
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "FLUTTER_PREBUILT_DART_SDK": "True",
- "GOMA_DIR": "[CACHE]/goma/client"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "Install Android emulator (API level 30)"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
- "start",
- "--no-read-only",
- "--avd-config",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android30.textpb"
- ],
- "cwd": "[CACHE]/builder/src/tools/android",
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "FLUTTER_PREBUILT_DART_SDK": "True",
- "GOMA_DIR": "[CACHE]/goma/client"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "Start Android emulator (API level 30)"
- },
- {
- "cmd": [
"./run_android_tests.sh",
"android_debug_x86"
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -800,14 +957,18 @@
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -828,14 +989,18 @@
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -858,14 +1023,18 @@
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -892,14 +1061,18 @@
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -928,14 +1101,18 @@
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
diff --git a/recipes/engine/scenarios.expected/without_failure_upload_0.json b/recipes/engine/scenarios.expected/without_failure_upload_0.json
index bcbef64..184dfc5 100644
--- a/recipes/engine/scenarios.expected/without_failure_upload_0.json
+++ b/recipes/engine/scenarios.expected/without_failure_upload_0.json
@@ -75,6 +75,215 @@
},
{
"cmd": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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": [],
+ "name": "start avd"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Install Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--writable-system",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Start Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "avd setup"
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "infra_step": true,
+ "name": "avd setup.Set execute permission",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "name": "avd setup.avd_setup.sh",
+ "timeout": 3600,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@test_stdout@@@@",
+ "@@@STEP_LOG_END@test_stdout@@@",
+ "@@@STEP_LOG_LINE@test_stderr@@@@",
+ "@@@STEP_LOG_END@test_stderr@@@"
+ ]
+ },
+ {
+ "cmd": [],
"name": "Checkout source code"
},
{
@@ -99,8 +308,11 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS_REPORT_BUILD": "flutter/ci/Linux Engine/8945511751514863184",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GIT_HTTP_LOW_SPEED_LIMIT": "102400",
"GIT_HTTP_LOW_SPEED_TIME": "1800",
@@ -108,7 +320,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -171,14 +384,18 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS_REPORT_BUILD": "flutter/ci/Linux Engine/8945511751514863184",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -206,13 +423,17 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -238,7 +459,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -254,7 +478,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -281,7 +506,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -289,7 +517,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -316,7 +545,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -332,7 +564,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -368,7 +601,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -384,7 +620,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -409,7 +646,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -425,7 +665,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -454,7 +695,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -462,7 +706,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -494,7 +739,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -502,7 +750,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -549,7 +798,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -557,7 +809,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -589,7 +842,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -597,7 +853,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -633,7 +890,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -641,7 +901,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -659,127 +920,23 @@
},
{
"cmd": [
- "cipd",
- "ensure",
- "-root",
- "[CACHE]/builder/src/tools/android",
- "-ensure-file",
- "chromium/tools/android/avd/linux-amd64 e5JfdaCjazDFh5uqhkPgVeZa9oCLVimm5_8TWAENz1gC",
- "-max-threads",
- "0",
- "-json-output",
- "/path/to/tmp/json"
- ],
- "cwd": "[CACHE]/builder",
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "FLUTTER_PREBUILT_DART_SDK": "True",
- "GOMA_DIR": "[CACHE]/goma/client"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "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-e5JfdaCjazDFh5uq\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
- "@@@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": [
- "python",
- "-u",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
- "install",
- "--avd-config",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android30.textpb"
- ],
- "cwd": "[CACHE]/builder/src/tools/android",
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "FLUTTER_PREBUILT_DART_SDK": "True",
- "GOMA_DIR": "[CACHE]/goma/client"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "Install Android emulator (API level 30)"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
- "start",
- "--no-read-only",
- "--avd-config",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android30.textpb"
- ],
- "cwd": "[CACHE]/builder/src/tools/android",
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "FLUTTER_PREBUILT_DART_SDK": "True",
- "GOMA_DIR": "[CACHE]/goma/client"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "Start Android emulator (API level 30)"
- },
- {
- "cmd": [
"./run_android_tests.sh",
"android_debug_x86"
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -800,14 +957,18 @@
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
diff --git a/recipes/engine/scenarios.expected/without_failure_upload_1.json b/recipes/engine/scenarios.expected/without_failure_upload_1.json
index bcbef64..184dfc5 100644
--- a/recipes/engine/scenarios.expected/without_failure_upload_1.json
+++ b/recipes/engine/scenarios.expected/without_failure_upload_1.json
@@ -75,6 +75,215 @@
},
{
"cmd": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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": [],
+ "name": "start avd"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Install Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--writable-system",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Start Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "avd setup"
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "infra_step": true,
+ "name": "avd setup.Set execute permission",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
+ "FLUTTER_PREBUILT_DART_SDK": "True",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
+ ]
+ },
+ "name": "avd setup.avd_setup.sh",
+ "timeout": 3600,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@test_stdout@@@@",
+ "@@@STEP_LOG_END@test_stdout@@@",
+ "@@@STEP_LOG_LINE@test_stderr@@@@",
+ "@@@STEP_LOG_END@test_stderr@@@"
+ ]
+ },
+ {
+ "cmd": [],
"name": "Checkout source code"
},
{
@@ -99,8 +308,11 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS_REPORT_BUILD": "flutter/ci/Linux Engine/8945511751514863184",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GIT_HTTP_LOW_SPEED_LIMIT": "102400",
"GIT_HTTP_LOW_SPEED_TIME": "1800",
@@ -108,7 +320,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -171,14 +384,18 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS_REPORT_BUILD": "flutter/ci/Linux Engine/8945511751514863184",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -206,13 +423,17 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -238,7 +459,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -254,7 +478,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -281,7 +506,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -289,7 +517,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -316,7 +545,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -332,7 +564,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -368,7 +601,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -384,7 +620,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -409,7 +646,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GLOG_log_dir": "[CLEANUP]",
"GOMA_CACHE_DIR": "[CACHE]/goma",
@@ -425,7 +665,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -454,7 +695,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -462,7 +706,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -494,7 +739,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -502,7 +750,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -549,7 +798,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -557,7 +809,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -589,7 +842,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -597,7 +853,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -633,7 +890,10 @@
],
"cwd": "[CACHE]/builder",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client",
"GOMA_TMP_DIR": "[CLEANUP]/goma",
@@ -641,7 +901,8 @@
},
"env_prefixes": {
"PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -659,127 +920,23 @@
},
{
"cmd": [
- "cipd",
- "ensure",
- "-root",
- "[CACHE]/builder/src/tools/android",
- "-ensure-file",
- "chromium/tools/android/avd/linux-amd64 e5JfdaCjazDFh5uqhkPgVeZa9oCLVimm5_8TWAENz1gC",
- "-max-threads",
- "0",
- "-json-output",
- "/path/to/tmp/json"
- ],
- "cwd": "[CACHE]/builder",
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "FLUTTER_PREBUILT_DART_SDK": "True",
- "GOMA_DIR": "[CACHE]/goma/client"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "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-e5JfdaCjazDFh5uq\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
- "@@@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": [
- "python",
- "-u",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
- "install",
- "--avd-config",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android30.textpb"
- ],
- "cwd": "[CACHE]/builder/src/tools/android",
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "FLUTTER_PREBUILT_DART_SDK": "True",
- "GOMA_DIR": "[CACHE]/goma/client"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "Install Android emulator (API level 30)"
- },
- {
- "cmd": [
- "python",
- "-u",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
- "start",
- "--no-read-only",
- "--avd-config",
- "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android30.textpb"
- ],
- "cwd": "[CACHE]/builder/src/tools/android",
- "env": {
- "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
- "FLUTTER_PREBUILT_DART_SDK": "True",
- "GOMA_DIR": "[CACHE]/goma/client"
- },
- "env_prefixes": {
- "PATH": [
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "Start Android emulator (API level 30)"
- },
- {
- "cmd": [
"./run_android_tests.sh",
"android_debug_x86"
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
@@ -800,14 +957,18 @@
],
"cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "EMULATOR_PID": "17687",
"FLUTTER_PREBUILT_DART_SDK": "True",
"GOMA_DIR": "[CACHE]/goma/client"
},
"env_prefixes": {
"PATH": [
"[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
- "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools"
]
},
"env_suffixes": {
diff --git a/recipes/engine/scenarios.py b/recipes/engine/scenarios.py
index 527bdfa..e76af66 100644
--- a/recipes/engine/scenarios.py
+++ b/recipes/engine/scenarios.py
@@ -10,7 +10,9 @@
DEPS = [
'depot_tools/depot_tools',
'depot_tools/gclient',
+ 'flutter/android_virtual_device',
'flutter/bucket_util',
+ 'flutter/flutter_deps',
'flutter/os_utils',
'flutter/repo_util',
'fuchsia/goma',
@@ -52,46 +54,14 @@
api.step('gn %s' % ' '.join(args), gn_cmd)
-def RunAndroidScenarioTests(api):
+def RunAndroidScenarioTests(api, env, env_prefixes):
"""Runs the scenario test app on a x86 Android emulator.
See details at
https://chromium.googlesource.com/chromium/src/+/HEAD/docs/android_emulator.md#using-your-own-emulator-image
"""
engine_checkout = GetCheckoutPath(api)
- android_tool_dir = engine_checkout.join('tools', 'android')
- api.cipd.ensure(
- android_tool_dir,
- api.cipd.EnsureFile().add_package(
- 'chromium/tools/android/avd/linux-amd64',
- 'e5JfdaCjazDFh5uqhkPgVeZa9oCLVimm5_8TWAENz1gC'
- )
- )
-
- avd_script_path = android_tool_dir.join(
- 'src', 'tools', 'android', 'avd', 'avd.py'
- )
-
- avd_config = android_tool_dir.join(
- 'src', 'tools', 'android', 'avd', 'proto', 'generic_android30.textpb'
- )
-
- emulator_pid = ''
- with api.context(cwd=android_tool_dir):
- api.python(
- 'Install Android emulator (API level 30)', avd_script_path,
- ['install', '--avd-config', avd_config]
- )
-
- output = api.python(
- 'Start Android emulator (API level 30)',
- avd_script_path,
- ['start', '--no-read-only', '--avd-config', avd_config],
- stdout=api.raw_io.output()
- ).stdout
- m = re.match('.*pid: (\d+)\)', output)
- emulator_pid = m.group(1)
test_dir = engine_checkout.join('flutter', 'testing')
scenario_app_tests = test_dir.join('scenario_app')
@@ -99,14 +69,14 @@
# file containing the python scripts.
gradle_home_bin_dir = scenario_app_tests.join('android', 'gradle-home', 'bin')
with api.context(cwd=scenario_app_tests,
- env_prefixes={'PATH': [gradle_home_bin_dir]}):
+ env_prefixes={'PATH': [gradle_home_bin_dir]}), api.step.defer_results():
result = api.step(
'Scenario App Integration Tests',
['./run_android_tests.sh', 'android_debug_x86'],
ok_ret='all'
)
- api.step('Kill emulator', ['kill', '-9', emulator_pid])
+ api.step('Kill emulator', ['kill', '-9', env['EMULATOR_PID']])
build_failures_dir = scenario_app_tests.join('build', 'reports', 'diff_failures')
if api.path.exists(build_failures_dir):
# Upload any diff failures.
@@ -142,6 +112,12 @@
}
env_prefixes = {'PATH': [dart_bin]}
+ api.flutter_deps.required_deps(
+ env, env_prefixes, api.properties.get('dependencies', [])
+ )
+ api.android_virtual_device.start(env, env_prefixes)
+ api.android_virtual_device.setup(env, env_prefixes)
+
api.repo_util.engine_checkout(
cache_root, env, env_prefixes, clobber=properties.clobber
)
@@ -151,7 +127,7 @@
RunGN(api, '--android', '--android-cpu=x86', '--no-lto')
Build(api, 'android_debug_x86')
- RunAndroidScenarioTests(api)
+ RunAndroidScenarioTests(api, env, env_prefixes)
with api.step.defer_results():
# This is to clean up leaked processes.
@@ -164,9 +140,15 @@
scenario_failures = GetCheckoutPath(api).join(
'flutter', 'testing', 'scenario_app', 'build', 'reports', 'diff_failures'
)
+ avd_api_version = '31'
for upload_packages in (True, False):
yield api.test(
'without_failure_upload_%d' % upload_packages,
+ api.properties(
+ dependencies=[
+ {'dependency':'android_virtual_device', 'version':'31'},
+ ]
+ ),
api.buildbucket.ci_build(
builder='Linux Engine',
git_repo='https://chromium.googlesource.com/external/github.com/flutter/engine',
@@ -180,14 +162,19 @@
),
),
api.step_data(
- 'Start Android emulator (API level 30)',
+ 'start avd.Start Android emulator (API level %s)' % avd_api_version,
stdout=api.raw_io.output_text(
- 'android_30_google_apis_x86|emulator-5554 started (pid: 17687)'
+ 'android_' + avd_api_version + '_google_apis_x86|emulator-5554 started (pid: 17687)'
)
- )
+ ),
)
test = api.test(
'with_failure_upload_%d' % upload_packages,
+ api.properties(
+ dependencies=[
+ {'dependency':'android_virtual_device', 'version':'31'},
+ ]
+ ),
api.buildbucket.ci_build(
builder='Linux Engine',
git_repo='https://chromium.googlesource.com/external/github.com/flutter/engine',
@@ -205,11 +192,11 @@
api.step_data('Scenario App Integration Tests', retcode=1),
api.path.exists(scenario_failures),
api.step_data(
- 'Start Android emulator (API level 30)',
+ 'start avd.Start Android emulator (API level %s)' % avd_api_version,
stdout=api.raw_io.output_text(
- 'android_30_google_apis_x86|emulator-5554 started (pid: 17687)'
+ 'android_' + avd_api_version + '_google_apis_x86|emulator-5554 started (pid: 17687)'
)
- )
+ ),
)
if upload_packages:
test += api.step_data(
diff --git a/recipes/flutter/android_views.expected/flutter_drive_clean_exit.json b/recipes/flutter/android_views.expected/flutter_drive_clean_exit.json
index 82f57f5..0172282 100644
--- a/recipes/flutter/android_views.expected/flutter_drive_clean_exit.json
+++ b/recipes/flutter/android_views.expected/flutter_drive_clean_exit.json
@@ -173,6 +173,10 @@
]
},
{
+ "cmd": [],
+ "name": "download avd package"
+ },
+ {
"cmd": [
"vpython",
"-u",
@@ -184,36 +188,11 @@
"0777",
"[CACHE]/builder/avd"
],
- "cwd": "[CACHE]/builder",
- "env": {
- "ANDROID_HOME": "[CACHE]/android",
- "ANDROID_SDK_ROOT": "[CACHE]/android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
- "GRADLE_USER_HOME": "[CACHE]/gradle",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
"infra_step": true,
- "name": "Ensure avd cache"
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
},
{
"cmd": [
@@ -228,7 +207,7 @@
"-json-output",
"/path/to/tmp/json"
],
- "cwd": "[CACHE]/builder",
+ "cwd": "[CACHE]/builder/avd",
"env": {
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
@@ -256,8 +235,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "ensure_installed (2)",
+ "name": "download avd package.ensure_installed",
"~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
"@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
@@ -272,6 +252,34 @@
]
},
{
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CLEANUP]/tmp_tmp_1/curl",
+ "-ensure-file",
+ "flutter_internal/tools/curl/${platform} latest",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "ensure_installed (2)",
+ "~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\": \"flutter_internal/tools/curl/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": [],
"name": "start avd"
},
@@ -286,8 +294,10 @@
],
"cwd": "[CACHE]/builder/avd",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
@@ -302,8 +312,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"env_suffixes": {
@@ -332,8 +342,10 @@
],
"cwd": "[CACHE]/builder/avd",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
@@ -348,8 +360,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"env_suffixes": {
@@ -366,15 +378,23 @@
]
},
{
+ "cmd": [],
+ "name": "avd setup"
+ },
+ {
"cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "kill-server"
+ "chmod",
+ "755",
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh"
],
"cwd": "[CACHE]/builder/avd",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -388,33 +408,29 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb kill-server",
+ "infra_step": true,
+ "name": "avd setup.Set execute permission",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
"cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "start-server"
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb"
],
"cwd": "[CACHE]/builder/avd",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -428,232 +444,18 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb start-server",
+ "name": "avd setup.avd_setup.sh",
+ "timeout": 3600,
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "wait-for-device"
- ],
- "cwd": "[CACHE]/builder/avd",
- "env": {
- "ANDROID_HOME": "[CACHE]/android",
- "ANDROID_SDK_ROOT": "[CACHE]/android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
- "GRADLE_USER_HOME": "[CACHE]/gradle",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb wait-for-device",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "-s",
- "emulator-5554",
- "shell",
- "while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done;"
- ],
- "cwd": "[CACHE]/builder/avd",
- "env": {
- "ANDROID_HOME": "[CACHE]/android",
- "ANDROID_SDK_ROOT": "[CACHE]/android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
- "GRADLE_USER_HOME": "[CACHE]/gradle",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb wait until booted completed",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "devices"
- ],
- "cwd": "[CACHE]/builder/avd",
- "env": {
- "ANDROID_HOME": "[CACHE]/android",
- "ANDROID_SDK_ROOT": "[CACHE]/android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
- "GRADLE_USER_HOME": "[CACHE]/gradle",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb devices",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "shell",
- "input",
- "keyevent",
- "82"
- ],
- "cwd": "[CACHE]/builder/avd",
- "env": {
- "ANDROID_HOME": "[CACHE]/android",
- "ANDROID_SDK_ROOT": "[CACHE]/android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
- "GRADLE_USER_HOME": "[CACHE]/gradle",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb shell input keyevent 82",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "shell",
- "settings",
- "put",
- "global",
- "development_settings_enabled",
- "1"
- ],
- "cwd": "[CACHE]/builder/avd",
- "env": {
- "ANDROID_HOME": "[CACHE]/android",
- "ANDROID_SDK_ROOT": "[CACHE]/android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
- "GRADLE_USER_HOME": "[CACHE]/gradle",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb shell settings put global development_settings_enabled 1",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@test_stdout@@@@",
+ "@@@STEP_LOG_END@test_stdout@@@",
+ "@@@STEP_LOG_LINE@test_stderr@@@@",
+ "@@@STEP_LOG_END@test_stderr@@@"
]
},
{
@@ -668,9 +470,12 @@
],
"cwd": "[START_DIR]/flutter sdk",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -684,16 +489,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"name": "prepare environment.flutter config --no-analytics",
@@ -708,9 +505,12 @@
],
"cwd": "[START_DIR]/flutter sdk",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -724,16 +524,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"name": "prepare environment.flutter doctor",
@@ -750,9 +542,12 @@
],
"cwd": "[START_DIR]/flutter sdk",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -766,16 +561,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"name": "prepare environment.flutter devices",
@@ -790,9 +577,12 @@
],
"cwd": "[START_DIR]/flutter sdk",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -806,16 +596,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"infra_step": true,
@@ -836,9 +618,12 @@
],
"cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -852,16 +637,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"name": "Android Views Integration Tests",
@@ -869,7 +646,7 @@
},
{
"cmd": [],
- "name": "cleanup"
+ "name": "kill and cleanup avd"
},
{
"cmd": [
@@ -877,7 +654,32 @@
"-9",
"17687"
],
- "name": "cleanup.Kill emulator cleanup",
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "kill and cleanup avd.Kill emulator cleanup",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -887,27 +689,74 @@
"ps",
"-axww"
],
- "name": "cleanup.list processes",
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "kill and cleanup avd.list processes",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
"cmd": [],
- "name": "cleanup.Killing Processes",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
+ "name": "Killing Processes"
},
{
"cmd": [
"pkill",
"chrome"
],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
"infra_step": true,
- "name": "cleanup.Killing Processes.kill chrome",
+ "name": "Killing Processes.kill chrome",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@1@@@"
]
},
{
@@ -915,10 +764,35 @@
"pkill",
"dart"
],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
"infra_step": true,
- "name": "cleanup.Killing Processes.kill dart",
+ "name": "Killing Processes.kill dart",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@1@@@"
]
},
{
@@ -926,10 +800,35 @@
"pkill",
"flutter"
],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
"infra_step": true,
- "name": "cleanup.Killing Processes.kill flutter",
+ "name": "Killing Processes.kill flutter",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@1@@@"
]
},
{
@@ -937,10 +836,35 @@
"pkill",
"java"
],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
"infra_step": true,
- "name": "cleanup.Killing Processes.kill java",
+ "name": "Killing Processes.kill java",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@1@@@"
]
},
{
@@ -948,10 +872,35 @@
"pkill",
"adb"
],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
"infra_step": true,
- "name": "cleanup.Killing Processes.kill adb",
+ "name": "Killing Processes.kill adb",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@1@@@"
]
},
{
@@ -963,11 +912,33 @@
"-o",
"%MEM"
],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
"infra_step": true,
- "name": "cleanup.OS info",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
+ "name": "OS info (2)"
},
{
"name": "$result"
diff --git a/recipes/flutter/android_views.expected/flutter_drive_zombie_process.json b/recipes/flutter/android_views.expected/flutter_drive_zombie_process.json
index b226d5a..c0672fc 100644
--- a/recipes/flutter/android_views.expected/flutter_drive_zombie_process.json
+++ b/recipes/flutter/android_views.expected/flutter_drive_zombie_process.json
@@ -173,6 +173,10 @@
]
},
{
+ "cmd": [],
+ "name": "download avd package"
+ },
+ {
"cmd": [
"vpython",
"-u",
@@ -184,36 +188,11 @@
"0777",
"[CACHE]/builder/avd"
],
- "cwd": "[CACHE]/builder",
- "env": {
- "ANDROID_HOME": "[CACHE]/android",
- "ANDROID_SDK_ROOT": "[CACHE]/android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
- "GRADLE_USER_HOME": "[CACHE]/gradle",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
"infra_step": true,
- "name": "Ensure avd cache"
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
},
{
"cmd": [
@@ -228,7 +207,7 @@
"-json-output",
"/path/to/tmp/json"
],
- "cwd": "[CACHE]/builder",
+ "cwd": "[CACHE]/builder/avd",
"env": {
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
@@ -256,8 +235,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "ensure_installed (2)",
+ "name": "download avd package.ensure_installed",
"~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
"@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
@@ -272,6 +252,34 @@
]
},
{
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CLEANUP]/tmp_tmp_1/curl",
+ "-ensure-file",
+ "flutter_internal/tools/curl/${platform} latest",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "ensure_installed (2)",
+ "~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\": \"flutter_internal/tools/curl/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": [],
"name": "start avd"
},
@@ -286,8 +294,10 @@
],
"cwd": "[CACHE]/builder/avd",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
@@ -302,8 +312,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"env_suffixes": {
@@ -332,8 +342,10 @@
],
"cwd": "[CACHE]/builder/avd",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
@@ -348,8 +360,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"env_suffixes": {
@@ -366,15 +378,23 @@
]
},
{
+ "cmd": [],
+ "name": "avd setup"
+ },
+ {
"cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "kill-server"
+ "chmod",
+ "755",
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh"
],
"cwd": "[CACHE]/builder/avd",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -388,33 +408,29 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb kill-server",
+ "infra_step": true,
+ "name": "avd setup.Set execute permission",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
"cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "start-server"
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb"
],
"cwd": "[CACHE]/builder/avd",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -428,232 +444,18 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb start-server",
+ "name": "avd setup.avd_setup.sh",
+ "timeout": 3600,
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "wait-for-device"
- ],
- "cwd": "[CACHE]/builder/avd",
- "env": {
- "ANDROID_HOME": "[CACHE]/android",
- "ANDROID_SDK_ROOT": "[CACHE]/android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
- "GRADLE_USER_HOME": "[CACHE]/gradle",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb wait-for-device",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "-s",
- "emulator-5554",
- "shell",
- "while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done;"
- ],
- "cwd": "[CACHE]/builder/avd",
- "env": {
- "ANDROID_HOME": "[CACHE]/android",
- "ANDROID_SDK_ROOT": "[CACHE]/android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
- "GRADLE_USER_HOME": "[CACHE]/gradle",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb wait until booted completed",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "devices"
- ],
- "cwd": "[CACHE]/builder/avd",
- "env": {
- "ANDROID_HOME": "[CACHE]/android",
- "ANDROID_SDK_ROOT": "[CACHE]/android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
- "GRADLE_USER_HOME": "[CACHE]/gradle",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb devices",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "shell",
- "input",
- "keyevent",
- "82"
- ],
- "cwd": "[CACHE]/builder/avd",
- "env": {
- "ANDROID_HOME": "[CACHE]/android",
- "ANDROID_SDK_ROOT": "[CACHE]/android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
- "GRADLE_USER_HOME": "[CACHE]/gradle",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb shell input keyevent 82",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
- "shell",
- "settings",
- "put",
- "global",
- "development_settings_enabled",
- "1"
- ],
- "cwd": "[CACHE]/builder/avd",
- "env": {
- "ANDROID_HOME": "[CACHE]/android",
- "ANDROID_SDK_ROOT": "[CACHE]/android",
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
- "GRADLE_USER_HOME": "[CACHE]/gradle",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
- ]
- },
- "name": "start avd.adb shell settings put global development_settings_enabled 1",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@test_stdout@@@@",
+ "@@@STEP_LOG_END@test_stdout@@@",
+ "@@@STEP_LOG_LINE@test_stderr@@@@",
+ "@@@STEP_LOG_END@test_stderr@@@"
]
},
{
@@ -668,9 +470,12 @@
],
"cwd": "[START_DIR]/flutter sdk",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -684,16 +489,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"name": "prepare environment.flutter config --no-analytics",
@@ -708,9 +505,12 @@
],
"cwd": "[START_DIR]/flutter sdk",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -724,16 +524,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"name": "prepare environment.flutter doctor",
@@ -750,9 +542,12 @@
],
"cwd": "[START_DIR]/flutter sdk",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -766,16 +561,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"name": "prepare environment.flutter devices",
@@ -790,9 +577,12 @@
],
"cwd": "[START_DIR]/flutter sdk",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -806,16 +596,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"infra_step": true,
@@ -836,9 +618,12 @@
],
"cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
"env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
"ANDROID_HOME": "[CACHE]/android",
"ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
"GRADLE_OPTS": "-Dorg.gradle.daemon=false",
"GRADLE_USER_HOME": "[CACHE]/gradle",
"LUCI_BRANCH": "",
@@ -852,16 +637,8 @@
"PATH": [
"[START_DIR]/flutter sdk/bin",
"[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
- "[START_DIR]/flutter sdk/bin",
- "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
- ]
- },
- "env_suffixes": {
- "DEPOT_TOOLS_UPDATE": [
- "0"
- ],
- "PATH": [
- "RECIPE_REPO[depot_tools]"
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
]
},
"name": "Android Views Integration Tests",
@@ -869,7 +646,7 @@
},
{
"cmd": [],
- "name": "cleanup"
+ "name": "kill and cleanup avd"
},
{
"cmd": [
@@ -877,7 +654,32 @@
"-9",
"17687"
],
- "name": "cleanup.Kill emulator cleanup",
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "kill and cleanup avd.Kill emulator cleanup",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -887,7 +689,32 @@
"ps",
"-axww"
],
- "name": "cleanup.list processes",
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "kill and cleanup avd.list processes",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -898,27 +725,74 @@
"-9",
"12345"
],
- "name": "cleanup.Kill zombie processes",
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "kill and cleanup avd.Kill zombie processes",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
"cmd": [],
- "name": "cleanup.Killing Processes",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
+ "name": "Killing Processes"
},
{
"cmd": [
"pkill",
"chrome"
],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
"infra_step": true,
- "name": "cleanup.Killing Processes.kill chrome",
+ "name": "Killing Processes.kill chrome",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@1@@@"
]
},
{
@@ -926,10 +800,35 @@
"pkill",
"dart"
],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
"infra_step": true,
- "name": "cleanup.Killing Processes.kill dart",
+ "name": "Killing Processes.kill dart",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@1@@@"
]
},
{
@@ -937,10 +836,35 @@
"pkill",
"flutter"
],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
"infra_step": true,
- "name": "cleanup.Killing Processes.kill flutter",
+ "name": "Killing Processes.kill flutter",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@1@@@"
]
},
{
@@ -948,10 +872,35 @@
"pkill",
"java"
],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
"infra_step": true,
- "name": "cleanup.Killing Processes.kill java",
+ "name": "Killing Processes.kill java",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@1@@@"
]
},
{
@@ -959,10 +908,35 @@
"pkill",
"adb"
],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
"infra_step": true,
- "name": "cleanup.Killing Processes.kill adb",
+ "name": "Killing Processes.kill adb",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@1@@@"
]
},
{
@@ -974,11 +948,33 @@
"-o",
"%MEM"
],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/android_views",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
"infra_step": true,
- "name": "cleanup.OS info",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
+ "name": "OS info (2)"
},
{
"name": "$result"
diff --git a/recipes/flutter/android_views.py b/recipes/flutter/android_views.py
index af7945e..f0e6ed5 100644
--- a/recipes/flutter/android_views.py
+++ b/recipes/flutter/android_views.py
@@ -2,6 +2,10 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+# TODO(garyq): This Android AVD based test is currently implemented as a separate recipe
+# to validate stability of AVD in pre and post submit. Move this into the general recipe
+# once validated, stable, and no longer under heavy development.
+
from contextlib import contextmanager
import re
@@ -10,6 +14,7 @@
DEPS = [
'depot_tools/depot_tools',
+ 'flutter/android_virtual_device',
'flutter/os_utils',
'flutter/repo_util',
'flutter/flutter_deps',
@@ -27,18 +32,6 @@
PROPERTIES = InputProperties
ENV_PROPERTIES = EnvProperties
-def KillZombieEmulatorProcesses(api):
- # Kill zombie processes left over by QEMU on the host.
- step_result = api.step('list processes', ['ps', '-axww'], stdout=api.raw_io.output())
- zombieList = ['pm serve', 'qemu-system']
- killCommand = ['kill', '-9']
- for line in step_result.get_result().stdout.splitlines():
- # Check if current process has zombie process substring.
- if any(zombie in line for zombie in zombieList):
- killCommand.append(line.split(None, 1)[0])
- if len(killCommand) > 2:
- api.step('Kill zombie processes', killCommand)
-
def RunSteps(api, properties, env_properties):
# Collect memory/cpu/process before task execution.
api.os_utils.collect_os_info()
@@ -59,154 +52,91 @@
env, env_prefixes = api.repo_util.flutter_environment(checkout_path)
api.flutter_deps.required_deps(
- env, env_prefixes, api.properties.get('dependencies', [{'dependency': 'android_sdk'}])
+ env, env_prefixes, api.properties.get('dependencies', [])
)
- with api.context(env=env, env_prefixes=env_prefixes, cwd=cache_root), api.depot_tools.on_path():
- avd_cache_dir = cache_root.join('avd')
- api.file.ensure_directory('Ensure avd cache', avd_cache_dir)
- # Download and install AVD
- api.cipd.ensure(
- avd_cache_dir,
- api.cipd.EnsureFile().add_package(
- 'chromium/tools/android/avd/linux-amd64',
- 'p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC'
- )
- )
- avd_script_path = avd_cache_dir.join(
- 'src', 'tools', 'android', 'avd', 'avd.py'
- )
- avd_config = avd_cache_dir.join(
- 'src', 'tools', 'android', 'avd', 'proto', 'generic_android31.textpb'
- )
+ api.android_virtual_device.start(env, env_prefixes)
+ api.android_virtual_device.setup(env, env_prefixes)
- adb_script_path = avd_cache_dir.join(
- 'src', 'third_party', 'android_sdk', 'public', 'platform-tools', 'adb'
- )
-
- emulator_pid = ''
- with api.context(env=env, env_prefixes=env_prefixes, cwd=avd_cache_dir):
- with api.step.nest('start avd'):
- api.python(
- 'Install Android emulator (API level 31)', avd_script_path,
- ['install', '--avd-config', avd_config]
- )
- output = api.python(
- 'Start Android emulator (API level 31)',
- avd_script_path,
- ['start', '--no-read-only', '--writable-system', '--avd-config', avd_config],
- stdout=api.raw_io.output()
- ).stdout
- m = re.match('.*pid: (\d+)\)', output)
- emulator_pid = m.group(1)
-
- api.step(
- 'adb kill-server',
- [str(adb_script_path), 'kill-server'],
- )
- api.step(
- 'adb start-server',
- [str(adb_script_path), 'start-server'],
- )
- # Wait for avd to initialize
- api.step(
- 'adb wait-for-device',
- [str(adb_script_path), 'wait-for-device'],
- )
- # Wait for avd to reach home screen
- api.step(
- 'adb wait until booted completed',
- [
- str(adb_script_path),
- '-s',
- 'emulator-5554',
- 'shell',
- 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done;'
- ],
- )
- api.step(
- 'adb devices',
- [str(adb_script_path), 'devices'],
- )
- # unlock avd
- api.step(
- 'adb shell input keyevent 82',
- [str(adb_script_path), 'shell', 'input', 'keyevent', '82'],
- )
- # Ensure developer mode is enabled
- api.step(
- 'adb shell settings put global development_settings_enabled 1',
- [str(adb_script_path), 'shell', 'settings', 'put', 'global', 'development_settings_enabled', '1'],
- )
-
- with api.context(env=env, env_prefixes=env_prefixes, cwd=checkout_path):
- with api.step.nest('prepare environment'), api.step.defer_results():
- # This prevents junk analytics from being sent due to testing
- api.step(
- 'flutter config --no-analytics',
- ['flutter', 'config', '--no-analytics'],
- )
- api.step(
- 'flutter doctor',
- ['flutter', 'doctor'],
- )
- api.step(
- 'flutter devices',
- ['flutter', 'devices', '--device-timeout=40', '--verbose'],
- )
- api.step(
- 'download dependencies',
- ['flutter', 'update-packages'],
- infra_step=True,
- )
- views_test_dir = checkout_path.join('dev', 'integration_tests', 'android_views')
- with api.context(env=env, env_prefixes=env_prefixes, cwd=views_test_dir):
+ with api.context(env=env, env_prefixes=env_prefixes, cwd=checkout_path):
+ with api.step.nest('prepare environment'), api.step.defer_results():
+ # This prevents junk analytics from being sent due to testing
api.step(
- 'Android Views Integration Tests',
- [
- 'flutter',
- 'drive',
- '--browser-name=android-chrome',
- '--android-emulator',
- '--no-start-paused',
- '--purge-persistent-cache',
- '--device-timeout=30'
- ],
- timeout=700,
+ 'flutter config --no-analytics',
+ ['flutter', 'config', '--no-analytics'],
)
-
- with api.step.nest('cleanup'), api.step.defer_results():
- api.step('Kill emulator cleanup', ['kill', '-9', emulator_pid])
- KillZombieEmulatorProcesses(api)
+ api.step(
+ 'flutter doctor',
+ ['flutter', 'doctor'],
+ )
+ api.step(
+ 'flutter devices',
+ ['flutter', 'devices', '--device-timeout=40', '--verbose'],
+ )
+ api.step(
+ 'download dependencies',
+ ['flutter', 'update-packages'],
+ infra_step=True,
+ )
+ views_test_dir = checkout_path.join('dev', 'integration_tests', 'android_views')
+ with api.context(env=env, env_prefixes=env_prefixes, cwd=views_test_dir), api.step.defer_results():
+ api.step(
+ 'Android Views Integration Tests',
+ [
+ 'flutter',
+ 'drive',
+ '--browser-name=android-chrome',
+ '--android-emulator',
+ '--no-start-paused',
+ '--purge-persistent-cache',
+ '--device-timeout=30'
+ ],
+ timeout=700,
+ )
+ api.android_virtual_device.kill(env['EMULATOR_PID'])
# This is to clean up leaked processes.
api.os_utils.kill_processes()
# Collect memory/cpu/process after task execution.
api.os_utils.collect_os_info()
-
def GenTests(api):
checkout_path = api.path['start_dir'].join('flutter sdk')
+ avd_api_version = '31'
yield api.test(
'flutter_drive_clean_exit',
+ api.properties(
+ dependencies=[
+ {'dependency':'android_sdk'},
+ {'dependency':'android_virtual_device', 'version':'31'},
+ {'dependency':'curl'}
+ ]
+ ),
api.repo_util.flutter_environment_data(checkout_dir=checkout_path),
api.step_data(
- 'start avd.Start Android emulator (API level 31)',
+ 'start avd.Start Android emulator (API level %s)' % avd_api_version,
stdout=api.raw_io.output_text(
- 'android_31_google_apis_x86|emulator-5554 started (pid: 17687)'
+ 'android_' + avd_api_version + '_google_apis_x86|emulator-5554 started (pid: 17687)'
)
),
)
yield api.test(
'flutter_drive_zombie_process',
+ api.properties(
+ dependencies=[
+ {'dependency':'android_sdk'},
+ {'dependency':'android_virtual_device', 'version':'31'},
+ {'dependency':'curl'}
+ ]
+ ),
api.repo_util.flutter_environment_data(checkout_dir=checkout_path),
api.step_data(
- 'start avd.Start Android emulator (API level 31)',
+ 'start avd.Start Android emulator (API level %s)' % avd_api_version,
stdout=api.raw_io.output_text(
- 'android_31_google_apis_x86|emulator-5554 started (pid: 17687)'
+ 'android_' + avd_api_version + '_google_apis_x86|emulator-5554 started (pid: 17687)'
)
),
api.step_data(
- 'cleanup.list processes',
+ 'kill and cleanup avd.list processes',
stdout=api.raw_io.output_text(
'12345 qemu-system blah'
)
diff --git a/recipes/flutter/deferred_components.expected/flutter_release_clean_exit.json b/recipes/flutter/deferred_components.expected/flutter_release_clean_exit.json
new file mode 100644
index 0000000..0458928
--- /dev/null
+++ b/recipes/flutter/deferred_components.expected/flutter_release_clean_exit.json
@@ -0,0 +1,1027 @@
+[
+ {
+ "cmd": [
+ "top",
+ "-b",
+ "-n",
+ "3",
+ "-o",
+ "%MEM"
+ ],
+ "infra_step": true,
+ "name": "OS info"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder"
+ ],
+ "infra_step": true,
+ "name": "Ensure root cache"
+ },
+ {
+ "cmd": [],
+ "name": "checkout source code"
+ },
+ {
+ "cmd": [],
+ "name": "checkout source code.Checkout flutter/flutter",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/flutter sdk",
+ "--url",
+ "https://chromium.googlesource.com/external/github.com/flutter/flutter"
+ ],
+ "name": "checkout source code.Checkout flutter/flutter.git setup",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "fetch",
+ "origin",
+ "master",
+ "--recurse-submodules",
+ "--progress",
+ "--tags"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "env": {
+ "PATH": "RECIPE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "checkout source code.Checkout flutter/flutter.git fetch",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "infra_step": true,
+ "name": "checkout source code.Checkout flutter/flutter.git checkout",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "infra_step": true,
+ "name": "checkout source code.Checkout flutter/flutter.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": "[START_DIR]/flutter sdk",
+ "infra_step": true,
+ "name": "checkout source code.Checkout flutter/flutter.git clean",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "infra_step": true,
+ "name": "checkout source code.Checkout flutter/flutter.submodule sync",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "infra_step": true,
+ "name": "checkout source code.Checkout flutter/flutter.submodule update",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/android",
+ "-ensure-file",
+ "flutter_internal/android/sdk/${platform} latest",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "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\": \"flutter_internal/android/sdk/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": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CLEANUP]/tmp_tmp_1/curl",
+ "-ensure-file",
+ "flutter_internal/tools/curl/${platform} latest",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "ensure_installed (2)",
+ "~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\": \"flutter_internal/tools/curl/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": [],
+ "name": "start avd"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Install Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--writable-system",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Start Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "avd setup"
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "avd setup.Set execute permission",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "avd setup.avd_setup.sh",
+ "timeout": 3600,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@test_stdout@@@@",
+ "@@@STEP_LOG_END@test_stdout@@@",
+ "@@@STEP_LOG_LINE@test_stderr@@@@",
+ "@@@STEP_LOG_END@test_stderr@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "prepare environment"
+ },
+ {
+ "cmd": [
+ "flutter",
+ "config",
+ "--no-analytics"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "prepare environment.flutter config --no-analytics",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "flutter",
+ "doctor"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "prepare environment.flutter doctor",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "flutter",
+ "devices",
+ "--device-timeout=40",
+ "--verbose"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "prepare environment.flutter devices",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "flutter",
+ "update-packages"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "prepare environment.download dependencies",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/bundletool",
+ "-ensure-file",
+ "flutter/android/bundletool vFt1jA0cUeZLmUCVR5NG2JVB-SgJ18GH_pVYKMOlfUIC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "prepare environment.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-vFt1jA0cUeZLmUCV\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"flutter/android/bundletool\"@@@",
+ "@@@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": [
+ "./download_assets.sh"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "download assets script"
+ },
+ {
+ "cmd": [
+ "./run_release_test.sh",
+ "[CACHE]/builder/bundletool/bundletool.jar",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "Deferred components release tests",
+ "timeout": 700
+ },
+ {
+ "cmd": [],
+ "name": "kill and cleanup avd"
+ },
+ {
+ "cmd": [
+ "kill",
+ "-9",
+ "17687"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "kill and cleanup avd.Kill emulator cleanup",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "ps",
+ "-axww"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "kill and cleanup avd.list processes",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Killing Processes"
+ },
+ {
+ "cmd": [
+ "pkill",
+ "chrome"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "Killing Processes.kill chrome",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "pkill",
+ "dart"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "Killing Processes.kill dart",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "pkill",
+ "flutter"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "Killing Processes.kill flutter",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "pkill",
+ "java"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "Killing Processes.kill java",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "pkill",
+ "adb"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "Killing Processes.kill adb",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "top",
+ "-b",
+ "-n",
+ "3",
+ "-o",
+ "%MEM"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "OS info (2)"
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipes/flutter/deferred_components.expected/flutter_release_zombie_process.json b/recipes/flutter/deferred_components.expected/flutter_release_zombie_process.json
new file mode 100644
index 0000000..f055428
--- /dev/null
+++ b/recipes/flutter/deferred_components.expected/flutter_release_zombie_process.json
@@ -0,0 +1,1063 @@
+[
+ {
+ "cmd": [
+ "top",
+ "-b",
+ "-n",
+ "3",
+ "-o",
+ "%MEM"
+ ],
+ "infra_step": true,
+ "name": "OS info"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder"
+ ],
+ "infra_step": true,
+ "name": "Ensure root cache"
+ },
+ {
+ "cmd": [],
+ "name": "checkout source code"
+ },
+ {
+ "cmd": [],
+ "name": "checkout source code.Checkout flutter/flutter",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/flutter sdk",
+ "--url",
+ "https://chromium.googlesource.com/external/github.com/flutter/flutter"
+ ],
+ "name": "checkout source code.Checkout flutter/flutter.git setup",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "fetch",
+ "origin",
+ "master",
+ "--recurse-submodules",
+ "--progress",
+ "--tags"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "env": {
+ "PATH": "RECIPE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "checkout source code.Checkout flutter/flutter.git fetch",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "infra_step": true,
+ "name": "checkout source code.Checkout flutter/flutter.git checkout",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "infra_step": true,
+ "name": "checkout source code.Checkout flutter/flutter.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": "[START_DIR]/flutter sdk",
+ "infra_step": true,
+ "name": "checkout source code.Checkout flutter/flutter.git clean",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "infra_step": true,
+ "name": "checkout source code.Checkout flutter/flutter.submodule sync",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "infra_step": true,
+ "name": "checkout source code.Checkout flutter/flutter.submodule update",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/android",
+ "-ensure-file",
+ "flutter_internal/android/sdk/${platform} latest",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "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\": \"flutter_internal/android/sdk/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": [],
+ "name": "download avd package"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/avd"
+ ],
+ "infra_step": true,
+ "name": "download avd package.Ensure avd cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/avd",
+ "-ensure-file",
+ "chromium/tools/android/avd/linux-amd64 p-1EgH-og45NbJT5ld4bBmvhayUxyb5Wm0oedSBwXOsC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "download avd package.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-p-1EgH-og45NbJT5\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd/linux-amd64\"@@@",
+ "@@@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": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CLEANUP]/tmp_tmp_1/curl",
+ "-ensure-file",
+ "flutter_internal/tools/curl/${platform} latest",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "name": "ensure_installed (2)",
+ "~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\": \"flutter_internal/tools/curl/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": [],
+ "name": "start avd"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Install Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/avd/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--writable-system",
+ "--avd-config",
+ "[CACHE]/builder/avd/src/tools/android/avd/proto/generic_android31.textpb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "start avd.Start Android emulator (API level 31)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "avd setup"
+ },
+ {
+ "cmd": [
+ "chmod",
+ "755",
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "avd setup.Set execute permission",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_MODULE[flutter::android_virtual_device]/resources/avd_setup.sh",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb"
+ ],
+ "cwd": "[CACHE]/builder/avd",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "avd setup.avd_setup.sh",
+ "timeout": 3600,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@test_stdout@@@@",
+ "@@@STEP_LOG_END@test_stdout@@@",
+ "@@@STEP_LOG_LINE@test_stderr@@@@",
+ "@@@STEP_LOG_END@test_stderr@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "prepare environment"
+ },
+ {
+ "cmd": [
+ "flutter",
+ "config",
+ "--no-analytics"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "prepare environment.flutter config --no-analytics",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "flutter",
+ "doctor"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "prepare environment.flutter doctor",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "flutter",
+ "devices",
+ "--device-timeout=40",
+ "--verbose"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "prepare environment.flutter devices",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "flutter",
+ "update-packages"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "prepare environment.download dependencies",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/bundletool",
+ "-ensure-file",
+ "flutter/android/bundletool vFt1jA0cUeZLmUCVR5NG2JVB-SgJ18GH_pVYKMOlfUIC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[START_DIR]/flutter sdk",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "prepare environment.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@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-vFt1jA0cUeZLmUCV\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"flutter/android/bundletool\"@@@",
+ "@@@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": [
+ "./download_assets.sh"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "download assets script"
+ },
+ {
+ "cmd": [
+ "./run_release_test.sh",
+ "[CACHE]/builder/bundletool/bundletool.jar",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "Deferred components release tests",
+ "timeout": 700
+ },
+ {
+ "cmd": [],
+ "name": "kill and cleanup avd"
+ },
+ {
+ "cmd": [
+ "kill",
+ "-9",
+ "17687"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "kill and cleanup avd.Kill emulator cleanup",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "ps",
+ "-axww"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "kill and cleanup avd.list processes",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "kill",
+ "-9",
+ "12345"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "name": "kill and cleanup avd.Kill zombie processes",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Killing Processes"
+ },
+ {
+ "cmd": [
+ "pkill",
+ "chrome"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "Killing Processes.kill chrome",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "pkill",
+ "dart"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "Killing Processes.kill dart",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "pkill",
+ "flutter"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "Killing Processes.kill flutter",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "pkill",
+ "java"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "Killing Processes.kill java",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "pkill",
+ "adb"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "Killing Processes.kill adb",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "top",
+ "-b",
+ "-n",
+ "3",
+ "-o",
+ "%MEM"
+ ],
+ "cwd": "[START_DIR]/flutter sdk/dev/integration_tests/deferred_components_test",
+ "env": {
+ "ADB_PATH": "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools/adb",
+ "ANDROID_HOME": "[CACHE]/android",
+ "ANDROID_SDK_ROOT": "[CACHE]/android",
+ "AVD_ROOT": "[CACHE]/builder/avd",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "EMULATOR_PID": "17687",
+ "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+ "GRADLE_USER_HOME": "[CACHE]/gradle",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[START_DIR]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[START_DIR]/flutter sdk/bin",
+ "[START_DIR]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/builder/avd/src/third_party/android_sdk/public/platform-tools",
+ "[CLEANUP]/tmp_tmp_1/curl"
+ ]
+ },
+ "infra_step": true,
+ "name": "OS info (2)"
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipes/flutter/deferred_components.py b/recipes/flutter/deferred_components.py
new file mode 100644
index 0000000..2d96dab
--- /dev/null
+++ b/recipes/flutter/deferred_components.py
@@ -0,0 +1,166 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# TODO(garyq): This Android AVD based test is currently implemented as a separate recipe
+# to validate stability of AVD in pre and post submit. Move this into the general recipe
+# once validated, stable, and no longer under heavy development.
+
+from contextlib import contextmanager
+import re
+
+from PB.recipes.flutter.engine import InputProperties
+from PB.recipes.flutter.engine import EnvProperties
+
+DEPS = [
+ 'depot_tools/depot_tools',
+ 'flutter/android_virtual_device',
+ 'flutter/os_utils',
+ 'flutter/repo_util',
+ 'flutter/flutter_deps',
+ 'recipe_engine/context',
+ 'recipe_engine/path',
+ 'recipe_engine/platform',
+ 'recipe_engine/properties',
+ 'recipe_engine/cipd',
+ 'recipe_engine/file',
+ 'recipe_engine/python',
+ 'recipe_engine/raw_io',
+ 'recipe_engine/step',
+]
+
+# Builder dependencies requried:
+# - android_sdk
+# - android_avd
+# - curl
+
+PROPERTIES = InputProperties
+ENV_PROPERTIES = EnvProperties
+
+def RunSteps(api, properties, env_properties):
+ # Collect memory/cpu/process before task execution.
+ api.os_utils.collect_os_info()
+ api.os_utils.print_pub_certs()
+
+ cache_root = api.path['cache'].join('builder')
+
+ api.file.ensure_directory('Ensure root cache', cache_root)
+
+ checkout_path = api.path['start_dir'].join('flutter sdk')
+ with api.step.nest('checkout source code'):
+ api.repo_util.checkout(
+ 'flutter',
+ checkout_path=checkout_path,
+ url=api.properties.get('git_url'),
+ ref=api.properties.get('git_ref'),
+ )
+
+ avd_api_version = '31' # 31 is the first version that supports x86_64
+ for dep in api.properties.get('dependencies', []):
+ if dep['dependency'] == 'android_virtual_device':
+ avd_api_version = dep['version']
+ break
+
+ env, env_prefixes = api.repo_util.flutter_environment(checkout_path)
+ api.flutter_deps.required_deps(
+ env, env_prefixes, api.properties.get('dependencies', [])
+ )
+
+ api.android_virtual_device.start(env, env_prefixes)
+ api.android_virtual_device.setup(env, env_prefixes)
+
+ bundletool_dir = cache_root.join('bundletool')
+ bundletool_jar = bundletool_dir.join('bundletool.jar')
+ with api.context(env=env, env_prefixes=env_prefixes, cwd=checkout_path):
+ with api.step.nest('prepare environment'), api.step.defer_results():
+ # This prevents junk analytics from being sent due to testing
+ api.step(
+ 'flutter config --no-analytics',
+ ['flutter', 'config', '--no-analytics'],
+ )
+ api.step(
+ 'flutter doctor',
+ ['flutter', 'doctor'],
+ )
+ api.step(
+ 'flutter devices',
+ ['flutter', 'devices', '--device-timeout=40', '--verbose'],
+ )
+ api.step(
+ 'download dependencies',
+ ['flutter', 'update-packages'],
+ infra_step=True,
+ )
+ api.cipd.ensure(
+ bundletool_dir,
+ api.cipd.EnsureFile().add_package(
+ 'flutter/android/bundletool',
+ 'vFt1jA0cUeZLmUCVR5NG2JVB-SgJ18GH_pVYKMOlfUIC'
+ )
+ )
+ test_dir = checkout_path.join('dev', 'integration_tests', 'deferred_components_test')
+ with api.context(env=env, env_prefixes=env_prefixes, cwd=test_dir), api.step.defer_results():
+ # These assets are not allowed to be checked into the repo,
+ # so they are downloaded separately here.
+ api.step('download assets script', ['./download_assets.sh'])
+ api.step(
+ 'Deferred components release tests',
+ [
+ './run_release_test.sh',
+ str(bundletool_jar),
+ env['ADB_PATH']
+ ],
+ timeout=700,
+ )
+ # TODO(garyq): add flutter drive tests after https://github.com/flutter/flutter/issues/88906 is resolved
+
+ api.android_virtual_device.kill(env['EMULATOR_PID'])
+ # This is to clean up leaked processes.
+ api.os_utils.kill_processes()
+ # Collect memory/cpu/process after task execution.
+ api.os_utils.collect_os_info()
+
+
+def GenTests(api):
+ checkout_path = api.path['start_dir'].join('flutter sdk')
+ avd_api_version = '31'
+ yield api.test(
+ 'flutter_release_clean_exit',
+ api.properties(
+ dependencies=[
+ {'dependency':'android_sdk'},
+ {'dependency':'android_virtual_device', 'version':'31'},
+ {'dependency':'curl'}
+ ]
+ ),
+ api.repo_util.flutter_environment_data(checkout_dir=checkout_path),
+ api.step_data(
+ 'start avd.Start Android emulator (API level %s)' % avd_api_version,
+ stdout=api.raw_io.output_text(
+ 'android_' + avd_api_version + '_google_apis_x86|emulator-5554 started (pid: 17687)'
+ )
+ ),
+ )
+ yield api.test(
+ 'flutter_release_zombie_process',
+ api.properties(
+ dependencies=[
+ {'dependency':'android_sdk'},
+ {'dependency':'android_virtual_device', 'version':'31'},
+ {'dependency':'curl'}
+ ]
+ ),
+ api.repo_util.flutter_environment_data(checkout_dir=checkout_path),
+ api.step_data(
+ 'start avd.Start Android emulator (API level %s)' % avd_api_version,
+ stdout=api.raw_io.output_text(
+ 'android_' + avd_api_version + '_google_apis_x86|emulator-5554 started (pid: 17687)'
+ )
+ ),
+ api.step_data(
+ 'kill and cleanup avd.list processes',
+ stdout=api.raw_io.output_text(
+ '12345 qemu-system blah'
+ )
+ ),
+ )