Add devicelab benchmark tags
Test runner is supporting benchmark tags https://github.com/flutter/flutter/pull/92141, and this CL collects these tags and inject to test runner.
Successful led runs:
Linux: https://luci-milo.appspot.com/raw/build/logs.chromium.org/flutter/led/keyonghan_google.com/376bbe830c57d13a8992e1767fe3cea65bd8dcd05629c3ca4cae1244e35889d1/+/build.proto
Mac: https://luci-milo.appspot.com/raw/build/logs.chromium.org/flutter/led/keyonghan_google.com/36cc6deea6ceadd2014fae395ba39e9fb825676274458742a95c862d51744f4a/+/build.proto
Windows: https://luci-milo.appspot.com/raw/build/logs.chromium.org/flutter/led/keyonghan_google.com/d898c597b1a5c32df8cc1e6c5be62b54d867dbbaf2eb4771834011e61a6592bd/+/build.proto
It is also validated in Skia Perf test bucket. New tags are populated correctly.
Change-Id: I6fb60c92571b10209b1182b06d7833db6dc6a5d1
Bug: https://github.com/flutter/flutter/issues/92203
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/19380
Reviewed-by: Casey Hillers <chillers@google.com>
Commit-Queue: Keyong Han <keyonghan@google.com>
diff --git a/recipe_modules/test_utils/__init__.py b/recipe_modules/test_utils/__init__.py
index 8ad144d..f91503c 100644
--- a/recipe_modules/test_utils/__init__.py
+++ b/recipe_modules/test_utils/__init__.py
@@ -1,6 +1,7 @@
PYTHON_VERSION_COMPATIBILITY = 'PY2+3'
DEPS = [
+ 'recipe_engine/context',
'recipe_engine/platform',
'recipe_engine/raw_io',
'recipe_engine/step',
diff --git a/recipe_modules/test_utils/api.py b/recipe_modules/test_utils/api.py
index 3fdc7ee..3fd67ef 100644
--- a/recipe_modules/test_utils/api.py
+++ b/recipe_modules/test_utils/api.py
@@ -2,6 +2,8 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import re
+
from recipe_engine import recipe_api
# The maximum number of characters to be included in the summary markdown.
@@ -13,6 +15,56 @@
# Default timeout for tests seconds
TIMEOUT_SECS = 3600
+# Map between iphone identifier and generation name.
+IDENTIFIER_NAME_MAP = {
+ 'iPhone1,1': 'iPhone',
+ 'iPhone1,2': 'iPhone 3G',
+ 'iPhone2,1': 'iPhone 3GS',
+ 'iPhone3,1': 'iPhone 4',
+ 'iPhone3,2': 'iPhone 4',
+ 'iPhone3,3': 'iPhone 4',
+ 'iPhone4,1': 'iPhone 4S',
+ 'iPhone5,1': 'iPhone 5',
+ 'iPhone5,2': 'iPhone 5',
+ 'iPhone5,3': 'iPhone 5c',
+ 'iPhone5,4': 'iPhone 5c',
+ 'iPhone6,1': 'iPhone 5s',
+ 'iPhone6,2': 'iPhone 5s',
+ 'iPhone7,2': 'iPhone 6',
+ 'iPhone7,1': 'iPhone 6 Plus',
+ 'iPhone8,1': 'iPhone 6s',
+ 'iPhone8,2': 'iPhone 6s Plus',
+ 'iPhone8,4': 'iPhone SE (1st generation)',
+ 'iPhone9,1': 'iPhone 7',
+ 'iPhone9,3': 'iPhone 7',
+ 'iPhone9,2': 'iPhone 7 Plus',
+ 'iPhone9,4': 'iPhone 7 Plus',
+ 'iPhone10,1': 'iPhone 8',
+ 'iPhone10,4': 'iPhone 8',
+ 'iPhone10,2': 'iPhone 8 Plus',
+ 'iPhone10,5': 'iPhone 8 Plus',
+ 'iPhone10,3': 'iPhone X',
+ 'iPhone10,6': 'iPhone X',
+ 'iPhone11,8': 'iPhone XR',
+ 'iPhone11,2': 'iPhone XS',
+ 'iPhone11,6': 'iPhone XS Max',
+ 'iPhone12,1': 'iPhone 11',
+ 'iPhone12,3': 'iPhone 11 Pro',
+ 'iPhone12,5': 'iPhone 11 Pro Max',
+ 'iPhone12,8': 'iPhone SE (2nd generation)',
+ 'iPhone13,1': 'iPhone 12 mini',
+ 'iPhone13,2': 'iPhone 12',
+ 'iPhone13,3': 'iPhone 12 Pro',
+ 'iPhone13,4': 'iPhone 12 Pro Max',
+ 'iPhone14,4': 'iPhone 13 mini',
+ 'iPhone14,5': 'iPhone 13',
+ 'iPhone14,2': 'iPhone 13 Pro',
+ 'iPhone14,3': 'iPhone 13 Pro Max',
+}
+
+# Regexp for windows os version number
+_WINDOWS_OS_RE = r'\[version (\d+\.\d+)\.(\d+(?:\.\d+|))\]'
+
class TestUtilsApi(recipe_api.RecipeApi):
"""Utilities to run flutter tests."""
@@ -112,4 +164,98 @@
'step is flaky: %s' % step_name,
['echo', 'test run is flaky'],
infra_step=True,
- )
\ No newline at end of file
+ )
+
+ def collect_benchmark_tags(self, env, env_prefixes, builder_name):
+ """Collect host and device tags for devicelab benchmarks.
+
+ Args:
+ env(dict): Current environment variables.
+ env_prefixes(dict): Current environment prefixes variables.
+ builder_name(str): The builder name of the current build.
+
+ Returns:
+ A dictionary representation of the tag names and values.
+
+ Examples:
+ Linux/android:
+ {
+ 'arch': 'intel',
+ 'host_type': 'linux',
+ 'device_version': 'android-25',
+ 'device_type': 'Moto G Play',
+ 'host_version': 'debian-10.11'
+ }
+ Mac/ios:
+ {
+ 'arch': 'm1',
+ 'host_type': 'mac',
+ 'device_version': 'iOS-14.4.2',
+ 'device_type': 'iPhone 6s',
+ 'host_version': 'mac-10.16'
+ }
+ Windows/android:
+ {
+ 'arch': 'intel',
+ 'host_type': 'win',
+ 'device_version': 'android-25',
+ 'device_type': 'Moto G Play',
+ 'host_version': 'windows-10.0'
+ }
+ """
+ tags = {}
+
+ def _get_tag(step_name, commands):
+ return self.m.step(
+ step_name,
+ commands,
+ stdout=self.m.raw_io.output(),
+ infra_step=True,
+ ).stdout.rstrip()
+
+ # Collect device tags.
+ #
+ # Mac/iOS testbeds always have builder_name starting with `Mac_ios`.
+ # The android tests always have builder_name like `%_android %`.
+ #
+ # We may need to support other platforms like desktop, and
+ # https://github.com/flutter/flutter/issues/92296 to track a more
+ # generic way to collect device tags.
+ if 'Mac_ios' in builder_name:
+ with self.m.context(env=env, env_prefixes=env_prefixes):
+ iphone_identifier = _get_tag(
+ 'Find device type', ['ideviceinfo', '--key', 'ProductType']
+ )
+ tags['device_type'] = IDENTIFIER_NAME_MAP[iphone_identifier]
+ tags['device_version'] = 'iOS-' + _get_tag(
+ 'Find device version', ['ideviceinfo', '--key', 'ProductVersion']
+ )
+ elif '_android ' in builder_name:
+ with self.m.context(env=env, env_prefixes=env_prefixes):
+ tags['device_type'] = _get_tag(
+ 'Find device type', ['adb', 'shell', 'getprop', 'ro.product.model']
+ )
+ tags['device_version'] = 'android-' + _get_tag(
+ 'Find device version',
+ ['adb', 'shell', 'getprop', 'ro.build.version.sdk']
+ )
+ else:
+ tags['device_type'] = 'none'
+ tags['device_version'] = 'none'
+
+ # Collect host tags.
+ if self.m.platform.is_mac:
+ tags['host_version'] = 'mac-' + str(self.m.platform.mac_release)
+ elif self.m.platform.is_linux:
+ tags['host_version'] = 'debian-' + _get_tag(
+ 'Find debian version', ['cat', '/etc/debian_version']
+ )
+ else:
+ win_version = _get_tag('Find windows version', ['cmd.exe', '/c', 'ver'])
+
+ matches = re.search(_WINDOWS_OS_RE, win_version.strip(), re.IGNORECASE)
+ tags['host_version'] = 'windows-' + matches.group(1) if matches else ''
+ tags['host_type'] = self.m.platform.name
+ tags['arch'] = self.m.platform.arch
+
+ return tags
diff --git a/recipe_modules/test_utils/examples/full.expected/flaky.json b/recipe_modules/test_utils/examples/full.expected/flaky.json
index 7161b03..c313c7b 100644
--- a/recipe_modules/test_utils/examples/full.expected/flaky.json
+++ b/recipe_modules/test_utils/examples/full.expected/flaky.json
@@ -24,6 +24,14 @@
"name": "step is flaky: test step"
},
{
+ "cmd": [
+ "cat",
+ "/etc/debian_version"
+ ],
+ "infra_step": true,
+ "name": "Find debian version"
+ },
+ {
"name": "$result"
}
]
\ No newline at end of file
diff --git a/recipe_modules/test_utils/examples/full.expected/passing-mac.json b/recipe_modules/test_utils/examples/full.expected/passing-mac.json
new file mode 100644
index 0000000..52b9b0a
--- /dev/null
+++ b/recipe_modules/test_utils/examples/full.expected/passing-mac.json
@@ -0,0 +1,46 @@
+[
+ {
+ "cmd": [
+ "ls",
+ "-la"
+ ],
+ "name": "mytest",
+ "timeout": 3600,
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@test_stdout@#success@@@",
+ "@@@STEP_LOG_LINE@test_stdout@this is a success@@@",
+ "@@@STEP_LOG_END@test_stdout@@@",
+ "@@@STEP_LOG_LINE@test_stderr@@@@",
+ "@@@STEP_LOG_END@test_stderr@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "echo",
+ "test run is flaky"
+ ],
+ "infra_step": true,
+ "name": "step is flaky: test step"
+ },
+ {
+ "cmd": [
+ "ideviceinfo",
+ "--key",
+ "ProductType"
+ ],
+ "infra_step": true,
+ "name": "Find device type"
+ },
+ {
+ "cmd": [
+ "ideviceinfo",
+ "--key",
+ "ProductVersion"
+ ],
+ "infra_step": true,
+ "name": "Find device version"
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/test_utils/examples/full.expected/passing.json b/recipe_modules/test_utils/examples/full.expected/passing.json
index 8837ba3..6c13cc4 100644
--- a/recipe_modules/test_utils/examples/full.expected/passing.json
+++ b/recipe_modules/test_utils/examples/full.expected/passing.json
@@ -23,6 +23,35 @@
"name": "step is flaky: test step"
},
{
+ "cmd": [
+ "adb",
+ "shell",
+ "getprop",
+ "ro.product.model"
+ ],
+ "infra_step": true,
+ "name": "Find device type"
+ },
+ {
+ "cmd": [
+ "adb",
+ "shell",
+ "getprop",
+ "ro.build.version.sdk"
+ ],
+ "infra_step": true,
+ "name": "Find device version"
+ },
+ {
+ "cmd": [
+ "cmd.exe",
+ "/c",
+ "ver"
+ ],
+ "infra_step": true,
+ "name": "Find windows version"
+ },
+ {
"name": "$result"
}
]
\ No newline at end of file
diff --git a/recipe_modules/test_utils/examples/full.py b/recipe_modules/test_utils/examples/full.py
index 7dd19ac..20d09ef 100644
--- a/recipe_modules/test_utils/examples/full.py
+++ b/recipe_modules/test_utils/examples/full.py
@@ -10,6 +10,7 @@
DEPS = [
'flutter/test_utils',
'recipe_engine/platform',
+ 'recipe_engine/properties',
'recipe_engine/raw_io',
]
@@ -19,6 +20,10 @@
api.test_utils.is_devicelab_bot()
api.test_utils.test_step_name('test')
api.test_utils.flaky_step('test step')
+ env = {}
+ env_prefixes = {}
+ builder_name = api.properties.get("buildername")
+ api.test_utils.collect_benchmark_tags(env, env_prefixes, builder_name)
def GenTests(api):
@@ -27,7 +32,35 @@
api.step_data(
'mytest',
stdout=api.raw_io.output_text('#success\nthis is a success'),
- ), api.platform.name('win')
+ ),
+ api.platform.name('win'),
+ api.properties(buildername='Windows_android test'),
+ api.step_data(
+ 'Find windows version',
+ stdout=api.raw_io
+ .output_text('Microsoft Windows [Version 10.0.19043.1288]'),
+ ),
+ api.step_data(
+ 'Find device version',
+ stdout=api.raw_io.output_text('29'),
+ ),
+ )
+ yield api.test(
+ 'passing-mac',
+ api.step_data(
+ 'mytest',
+ stdout=api.raw_io.output_text('#success\nthis is a success'),
+ ),
+ api.platform.name('mac'),
+ api.properties(buildername='Mac_ios test'),
+ api.step_data(
+ 'Find device type',
+ stdout=api.raw_io.output_text('iPhone8,1'),
+ ),
+ api.step_data(
+ 'Find device version',
+ stdout=api.raw_io.output_text('14'),
+ ),
)
yield api.test(
'flaky',
@@ -35,7 +68,12 @@
'mytest',
stdout=api.raw_io.output_text('#flaky\nthis is a flaky\nflaky: true'),
),
+ api.properties(buildername='Linux test'),
api.platform.name('linux'),
+ api.step_data(
+ 'Find debian version',
+ stdout=api.raw_io.output_text('10'),
+ ),
)
yield api.test(
'failing',
diff --git a/recipes/devicelab/devicelab_drone.expected/basic.json b/recipes/devicelab/devicelab_drone.expected/basic.json
index 353d7c6..f8c9680 100644
--- a/recipes/devicelab/devicelab_drone.expected/basic.json
+++ b/recipes/devicelab/devicelab_drone.expected/basic.json
@@ -326,6 +326,26 @@
},
{
"cmd": [
+ "cat",
+ "/etc/debian_version"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Find debian version"
+ },
+ {
+ "cmd": [
"flutter",
"doctor"
],
diff --git a/recipes/devicelab/devicelab_drone.expected/local-engine.json b/recipes/devicelab/devicelab_drone.expected/local-engine.json
index 6bb6c57..ff97df4 100644
--- a/recipes/devicelab/devicelab_drone.expected/local-engine.json
+++ b/recipes/devicelab/devicelab_drone.expected/local-engine.json
@@ -465,6 +465,26 @@
},
{
"cmd": [
+ "cat",
+ "/etc/debian_version"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "test:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Find debian version"
+ },
+ {
+ "cmd": [
"flutter",
"doctor"
],
diff --git a/recipes/devicelab/devicelab_drone.expected/no-task-name.json b/recipes/devicelab/devicelab_drone.expected/no-task-name.json
index 51d8255..abb830c 100644
--- a/recipes/devicelab/devicelab_drone.expected/no-task-name.json
+++ b/recipes/devicelab/devicelab_drone.expected/no-task-name.json
@@ -7,7 +7,7 @@
"The recipe has crashed at point 'Uncaught exception'!",
"",
"Traceback (most recent call last):",
- " File \"RECIPE_REPO[flutter]/recipes/devicelab/devicelab_drone.py\", line 36, in RunSteps",
+ " File \"RECIPE_REPO[flutter]/recipes/devicelab/devicelab_drone.py\", line 38, in RunSteps",
" raise ValueError('A task_name property is required')",
"ValueError('A task_name property is required')"
]
diff --git a/recipes/devicelab/devicelab_drone.expected/no-upload-metrics-linux-staging.json b/recipes/devicelab/devicelab_drone.expected/no-upload-metrics-linux-staging.json
index f92a0bf..20349c6 100644
--- a/recipes/devicelab/devicelab_drone.expected/no-upload-metrics-linux-staging.json
+++ b/recipes/devicelab/devicelab_drone.expected/no-upload-metrics-linux-staging.json
@@ -326,6 +326,26 @@
},
{
"cmd": [
+ "cat",
+ "/etc/debian_version"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:staging"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Find debian version"
+ },
+ {
+ "cmd": [
"flutter",
"doctor"
],
diff --git a/recipes/devicelab/devicelab_drone.expected/post-submit.json b/recipes/devicelab/devicelab_drone.expected/post-submit.json
index ea88ca3..783048b 100644
--- a/recipes/devicelab/devicelab_drone.expected/post-submit.json
+++ b/recipes/devicelab/devicelab_drone.expected/post-submit.json
@@ -326,6 +326,26 @@
},
{
"cmd": [
+ "cat",
+ "/etc/debian_version"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Find debian version"
+ },
+ {
+ "cmd": [
"flutter",
"doctor"
],
@@ -1152,6 +1172,8 @@
"",
"--task-name",
"abc",
+ "--benchmark-tags",
+ "{\"arch\": \"intel\", \"device_type\": \"none\", \"device_version\": \"none\", \"host_type\": \"linux\", \"host_version\": \"debian-\"}",
"--service-account-token-file",
"[CLEANUP]/tmp_tmp_4"
],
diff --git a/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json b/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json
index 2518329..632dd29 100644
--- a/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json
+++ b/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json
@@ -326,6 +326,84 @@
},
{
"cmd": [
+ "ideviceinfo",
+ "--key",
+ "ProductType"
+ ],
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Find device type"
+ },
+ {
+ "cmd": [
+ "ideviceinfo",
+ "--key",
+ "ProductVersion"
+ ],
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Find device version"
+ },
+ {
+ "cmd": [
"flutter",
"doctor"
],
@@ -337,7 +415,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -376,7 +454,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -404,6 +482,194 @@
},
{
"cmd": [
+ "rm",
+ "-rf",
+ "[HOME]/Library/Developer/Xcode/DerivedData"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Delete mac deriveddata"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/osx_sdk",
+ "-ensure-file",
+ "infra/tools/mac_toolchain/${platform} git_revision:9a1adc55bf4a1173784da3ba2f8cb06421606748",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:9a1\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/mac_toolchain/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/osx_sdk/mac_toolchain",
+ "install",
+ "-kind",
+ "ios",
+ "-xcode-version",
+ "9f2000",
+ "-output-dir",
+ "[CACHE]/osx_sdk/XCode.app",
+ "-cipd-package-prefix",
+ "flutter_internal/ios/xcode"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "install xcode"
+ },
+ {
+ "cmd": [
+ "sudo",
+ "xcode-select",
+ "--switch",
+ "[CACHE]/osx_sdk/XCode.app"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "select XCode"
+ },
+ {
+ "cmd": [
"flutter",
"doctor",
"--verbose"
@@ -416,7 +682,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -456,7 +722,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -492,7 +758,7 @@
"--results-file",
"[CLEANUP]/results_tmp_1/results",
"--luci-builder",
- "Mac abc",
+ "Mac_ios abc",
"--git-branch",
"master"
],
@@ -504,7 +770,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -565,7 +831,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -617,7 +883,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -677,7 +943,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -717,52 +983,8 @@
},
{
"cmd": [
- "pkill",
- "chrome"
- ],
- "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
- "env": {
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
- "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
- "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
- "[CLEANUP]/tmp_tmp_2/vpython",
- "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
- "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
- "[CLEANUP]/tmp_tmp_2/vpython"
- ]
- },
- "infra_step": true,
- "luci_context": {
- "realm": {
- "name": "project:ci"
- },
- "resultdb": {
- "current_invocation": {
- "name": "invocations/build:8945511751514863184",
- "update_token": "token"
- },
- "hostname": "rdbhost"
- }
- },
- "name": "Killing Processes.kill chrome",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "pkill",
+ "killall",
+ "-9",
"dart"
],
"cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
@@ -773,7 +995,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -807,7 +1029,8 @@
},
{
"cmd": [
- "pkill",
+ "killall",
+ "-9",
"flutter"
],
"cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
@@ -818,7 +1041,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -852,7 +1075,100 @@
},
{
"cmd": [
- "pkill",
+ "killall",
+ "-9",
+ "Chrome"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Killing Processes.kill Chrome",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "killall",
+ "-9",
+ "Safari"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Killing Processes.kill Safari",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "killall",
+ "-9",
"java"
],
"cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
@@ -863,7 +1179,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -890,14 +1206,15 @@
"hostname": "rdbhost"
}
},
- "name": "Killing Processes.kill java",
+ "name": "Killing Processes.kill Safari (2)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
"cmd": [
- "pkill",
+ "killall",
+ "-9",
"adb"
],
"cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
@@ -908,7 +1225,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -935,12 +1252,52 @@
"hostname": "rdbhost"
}
},
- "name": "Killing Processes.kill adb",
+ "name": "Killing Processes.kill Safari (3)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
+ "cmd": [
+ "sudo",
+ "xcode-select",
+ "--reset"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "reset XCode"
+ },
+ {
"cmd": [],
"name": "Upload metrics"
},
@@ -961,7 +1318,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -1009,7 +1366,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -1053,7 +1410,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -1101,7 +1458,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -1145,6 +1502,8 @@
"",
"--task-name",
"abc",
+ "--benchmark-tags",
+ "{\"arch\": \"intel\", \"device_type\": \"iPhone 6s\", \"device_version\": \"iOS-\", \"host_type\": \"mac\", \"host_version\": \"mac-10.13.5\"}",
"--service-account-token-file",
"[CLEANUP]/tmp_tmp_4"
],
@@ -1157,7 +1516,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
"TOKEN_PATH": "[CLEANUP]/tmp_tmp_3"
@@ -1209,7 +1568,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -1263,7 +1622,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -1313,7 +1672,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -1372,7 +1731,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
diff --git a/recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json b/recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json
index 3e5bbf8..783581a 100644
--- a/recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json
+++ b/recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json
@@ -326,6 +326,84 @@
},
{
"cmd": [
+ "ideviceinfo",
+ "--key",
+ "ProductType"
+ ],
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Find device type"
+ },
+ {
+ "cmd": [
+ "ideviceinfo",
+ "--key",
+ "ProductVersion"
+ ],
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Find device version"
+ },
+ {
+ "cmd": [
"flutter",
"doctor"
],
@@ -337,7 +415,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -376,7 +454,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -404,6 +482,194 @@
},
{
"cmd": [
+ "rm",
+ "-rf",
+ "[HOME]/Library/Developer/Xcode/DerivedData"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Delete mac deriveddata"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/osx_sdk",
+ "-ensure-file",
+ "infra/tools/mac_toolchain/${platform} git_revision:9a1adc55bf4a1173784da3ba2f8cb06421606748",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:9a1\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/mac_toolchain/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/osx_sdk/mac_toolchain",
+ "install",
+ "-kind",
+ "ios",
+ "-xcode-version",
+ "9f2000",
+ "-output-dir",
+ "[CACHE]/osx_sdk/XCode.app",
+ "-cipd-package-prefix",
+ "flutter_internal/ios/xcode"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "install xcode"
+ },
+ {
+ "cmd": [
+ "sudo",
+ "xcode-select",
+ "--switch",
+ "[CACHE]/osx_sdk/XCode.app"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "select XCode"
+ },
+ {
+ "cmd": [
"flutter",
"doctor",
"--verbose"
@@ -416,7 +682,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -456,7 +722,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -492,7 +758,7 @@
"--results-file",
"[CLEANUP]/results_tmp_1/results",
"--luci-builder",
- "Mac abc",
+ "Mac_ios abc",
"--git-branch",
"master"
],
@@ -504,7 +770,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -565,7 +831,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -617,7 +883,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -677,7 +943,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -717,52 +983,8 @@
},
{
"cmd": [
- "pkill",
- "chrome"
- ],
- "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
- "env": {
- "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
- "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
- "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
- "LUCI_BRANCH": "",
- "LUCI_CI": "True",
- "LUCI_PR": "",
- "OS": "linux",
- "PUB_CACHE": "[START_DIR]/.pub-cache",
- "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
- },
- "env_prefixes": {
- "PATH": [
- "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
- "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
- "[CLEANUP]/tmp_tmp_2/vpython",
- "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
- "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
- "[CLEANUP]/tmp_tmp_2/vpython"
- ]
- },
- "infra_step": true,
- "luci_context": {
- "realm": {
- "name": "project:ci"
- },
- "resultdb": {
- "current_invocation": {
- "name": "invocations/build:8945511751514863184",
- "update_token": "token"
- },
- "hostname": "rdbhost"
- }
- },
- "name": "Killing Processes.kill chrome",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@"
- ]
- },
- {
- "cmd": [
- "pkill",
+ "killall",
+ "-9",
"dart"
],
"cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
@@ -773,7 +995,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -807,7 +1029,8 @@
},
{
"cmd": [
- "pkill",
+ "killall",
+ "-9",
"flutter"
],
"cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
@@ -818,7 +1041,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -852,7 +1075,100 @@
},
{
"cmd": [
- "pkill",
+ "killall",
+ "-9",
+ "Chrome"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Killing Processes.kill Chrome",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "killall",
+ "-9",
+ "Safari"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Killing Processes.kill Safari",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "killall",
+ "-9",
"java"
],
"cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
@@ -863,7 +1179,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -890,14 +1206,15 @@
"hostname": "rdbhost"
}
},
- "name": "Killing Processes.kill java",
+ "name": "Killing Processes.kill Safari (2)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
"cmd": [
- "pkill",
+ "killall",
+ "-9",
"adb"
],
"cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
@@ -908,7 +1225,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -935,12 +1252,52 @@
"hostname": "rdbhost"
}
},
- "name": "Killing Processes.kill adb",
+ "name": "Killing Processes.kill Safari (3)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
+ "cmd": [
+ "sudo",
+ "xcode-select",
+ "--reset"
+ ],
+ "cwd": "[CLEANUP]/tmp_tmp_1/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "darwin",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "reset XCode"
+ },
+ {
"cmd": [],
"name": "Upload metrics"
},
@@ -961,7 +1318,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -1009,7 +1366,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -1053,7 +1410,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -1101,7 +1458,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
},
@@ -1142,7 +1499,7 @@
"--git-branch",
"master",
"--luci-builder",
- "Mac abc",
+ "Mac_ios abc",
"--test-status",
"Succeeded",
"--service-account-token-file",
@@ -1157,7 +1514,7 @@
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
- "OS": "linux",
+ "OS": "darwin",
"PUB_CACHE": "[START_DIR]/.pub-cache",
"SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk",
"TOKEN_PATH": "[CLEANUP]/tmp_tmp_3"
diff --git a/recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json b/recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json
index 19ea3b4..436d98f 100644
--- a/recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json
+++ b/recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json
@@ -326,6 +326,104 @@
},
{
"cmd": [
+ "ideviceinfo",
+ "--key",
+ "ProductType"
+ ],
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Find device type"
+ },
+ {
+ "cmd": [
+ "ideviceinfo",
+ "--key",
+ "ProductVersion"
+ ],
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[START_DIR]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CLEANUP]/tmp_tmp_1/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin",
+ "[CLEANUP]/tmp_tmp_1/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CLEANUP]/tmp_tmp_2/vpython"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Find device version"
+ },
+ {
+ "cmd": [
+ "cat",
+ "/etc/debian_version"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Find debian version"
+ },
+ {
+ "cmd": [
"flutter",
"doctor"
],
@@ -492,7 +590,7 @@
"--results-file",
"[CLEANUP]/results_tmp_1/results",
"--luci-builder",
- "Mac abc",
+ "Mac_ios abc",
"--git-branch",
"master"
],
@@ -1186,7 +1284,7 @@
"--git-branch",
"master",
"--luci-builder",
- "Mac abc",
+ "Mac_ios abc",
"--test-status",
"Succeeded",
"--service-account-token-file",
diff --git a/recipes/devicelab/devicelab_drone.py b/recipes/devicelab/devicelab_drone.py
index c6c0148..ef14476 100644
--- a/recipes/devicelab/devicelab_drone.py
+++ b/recipes/devicelab/devicelab_drone.py
@@ -18,7 +18,9 @@
'recipe_engine/buildbucket',
'recipe_engine/cas',
'recipe_engine/context',
+ 'recipe_engine/json',
'recipe_engine/path',
+ 'recipe_engine/platform',
'recipe_engine/properties',
'recipe_engine/raw_io',
'recipe_engine/runtime',
@@ -62,6 +64,10 @@
# we don't want to fetch it with cipd, so don't fetch it with required_deps
api.flutter_deps.required_deps(env, env_prefixes, deps)
api.flutter_deps.vpython(env, env_prefixes, 'latest')
+
+ tags = api.test_utils.collect_benchmark_tags(env, env_prefixes, api.properties.get('buildername'))
+ benchmark_tags = api.json.dumps(tags)
+
devicelab_path = flutter_path.join('dev', 'devicelab')
git_branch = api.buildbucket.gitiles_commit.ref.replace('refs/heads/', '')
# Create tmp file to store results in
@@ -125,7 +131,8 @@
with api.context(env=env, env_prefixes=env_prefixes, cwd=devicelab_path):
uploadResults(
api, env, env_prefixes, results_path, test_status == 'flaky',
- git_branch, api.properties.get('buildername'), commit_time, task_name
+ git_branch, api.properties.get('buildername'), commit_time, task_name,
+ benchmark_tags
)
uploadMetricsToCas(api, results_path)
@@ -175,7 +182,6 @@
else:
return False
-
def uploadResults(
api,
env,
@@ -186,6 +192,7 @@
builder_name,
commit_time,
task_name,
+ benchmark_tags,
test_status='Succeeded',
):
"""Upload DeviceLab test results to Cocoon/skia perf.
@@ -196,10 +203,22 @@
Only post-submit tests upload results to Cocoon/skia perf.
If `upload_metrics: true`, generated test metrics will be uploaded to skia perf
- for both prod ans staging tests.
+ for both prod and staging tests.
Otherwise, test status will be updated in Cocoon for tests running in prod pool,
and staging tests without `upload_metrics: true` will not be updated.
+
+ Args:
+ env(dict): Current environment variables.
+ env_prefixes(dict): Current environment prefixes variables.
+ results_path(str): Path to test results.
+ is_test_flaky(bool): Flaky flag for the test running step.
+ git_branch(str): Branch the test runs against.
+ builder_name(str): The builder name that is being run on.
+ commit_time(str): The commit time in UNIX timestamp.
+ task_name(str): The task name of the current test.
+ benchmark_tags(str): Json dumped str of benchmark tags, which includes host and device info.
+ test_status(str): The status of the test running step.
"""
if shouldNotUpdate(api, git_branch):
return
@@ -208,7 +227,7 @@
if api.properties.get('upload_metrics'):
runner_params.extend([
'--results-file', results_path, '--commit-time', commit_time,
- '--task-name', task_name
+ '--task-name', task_name, '--benchmark-tags', benchmark_tags
])
else:
# For builders without `upload_metrics: true`
@@ -273,7 +292,7 @@
yield api.test(
"xcode-devicelab",
api.properties(
- buildername='Mac abc',
+ buildername='Mac_ios abc',
task_name='abc',
dependencies=[{'dependency': 'xcode'}]
), api.repo_util.flutter_environment_data(checkout_dir=checkout_path),
@@ -282,17 +301,26 @@
'run abc',
stdout=api.raw_io.output_text('#flaky\nthis is a flaky\nflaky: true'),
retcode=0
- ), api.swarming.properties(bot_id='flutter-devicelab-mac-1')
+ ), api.swarming.properties(bot_id='flutter-devicelab-mac-1'),
+ api.step_data(
+ 'Find device type',
+ stdout=api.raw_io.output_text('iPhone8,1'),
+ )
)
yield api.test(
"xcode-chromium-mac",
api.properties(
- buildername='Mac abc',
+ buildername='Mac_ios abc',
task_name='abc',
dependencies=[{'dependency': 'xcode'}]
),
api.buildbucket.ci_build(git_ref='refs/heads/master',),
api.repo_util.flutter_environment_data(checkout_dir=checkout_path),
+ api.platform.name('mac'),
+ api.step_data(
+ 'Find device type',
+ stdout=api.raw_io.output_text('iPhone8,1'),
+ ),
)
yield api.test(
"post-submit",
@@ -310,13 +338,17 @@
yield api.test(
"upload-metrics-mac",
api.properties(
- buildername='Mac abc',
+ buildername='Mac_ios abc',
dependencies=[{'dependency': 'xcode'}],
task_name='abc',
upload_metrics=True,
upload_metrics_to_cas=True,
), api.repo_util.flutter_environment_data(checkout_dir=checkout_path),
- api.buildbucket.ci_build(git_ref='refs/heads/master',)
+ api.platform.name('mac'),
+ api.step_data(
+ 'Find device type',
+ stdout=api.raw_io.output_text('iPhone8,1'),
+ ), api.buildbucket.ci_build(git_ref='refs/heads/master',)
)
yield api.test(
"no-upload-metrics-linux-staging",