Add support for contexts in tests.
This is to extend functionality available to tests through configurable
python contexts.
Bug: https://github.com/flutter/flutter/issues/128370
Change-Id: I59e79f58024a9ee259828e2a0b55a8e28c080358
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/45561
Reviewed-by: Keyong Han <keyonghan@google.com>
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
diff --git a/recipe_modules/flutter_deps/__init__.py b/recipe_modules/flutter_deps/__init__.py
index ebbb8ec..93c7c84 100644
--- a/recipe_modules/flutter_deps/__init__.py
+++ b/recipe_modules/flutter_deps/__init__.py
@@ -2,6 +2,7 @@
'flutter/android_virtual_device',
'flutter/repo_util',
'flutter/test_utils',
+ 'flutter/token_util',
'recipe_engine/cas',
'recipe_engine/cipd',
'recipe_engine/context',
diff --git a/recipe_modules/flutter_deps/api.py b/recipe_modules/flutter_deps/api.py
index ebf5472..8dfb5f9 100644
--- a/recipe_modules/flutter_deps/api.py
+++ b/recipe_modules/flutter_deps/api.py
@@ -694,3 +694,6 @@
"""
avd_root = self.m.path['cache'].join('avd')
self.m.android_virtual_device.download(avd_root, env, env_prefixes, version)
+
+ def contexts(self):
+ return {'metric_center_token': self.m.token_util.metric_center_token}
diff --git a/recipe_modules/flutter_deps/examples/full.py b/recipe_modules/flutter_deps/examples/full.py
index 6e0565c..a688d85 100644
--- a/recipe_modules/flutter_deps/examples/full.py
+++ b/recipe_modules/flutter_deps/examples/full.py
@@ -69,6 +69,7 @@
api.flutter_deps.certs(env, env_prefixes, '')
api.flutter_deps.vs_build(env, env_prefixes, '')
api.flutter_deps.jazzy(env, env_prefixes, '')
+ api.flutter_deps.contexts()
if api.platform.is_linux:
api.flutter_deps.android_virtual_device(env, env_prefixes, '31')
api.flutter_deps.gh_cli(env, env_prefixes, 'latest')
diff --git a/recipes/engine_v2/builder.expected/basic.json b/recipes/engine_v2/builder.expected/basic.json
index a085f58..34089f1 100644
--- a/recipes/engine_v2/builder.expected/basic.json
+++ b/recipes/engine_v2/builder.expected/basic.json
@@ -1725,6 +1725,114 @@
"name": "generator1"
},
{
+ "cmd": [
+ "luci-auth",
+ "token",
+ "-scopes",
+ "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/datastore",
+ "-lifetime",
+ "3m"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "get access token for default account"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "extra.secret.token.should.not.be.logged",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "write metric center token"
+ },
+ {
"cmd": [],
"name": "Initialize logs"
},
@@ -1861,13 +1969,15 @@
"ENGINE_PATH": "[CACHE]/builder",
"FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
"FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GCP_PROJECT": "flutter-infra-staging",
"GIT_BRANCH": "",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
- "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
+ "TOKEN_PATH": "[CLEANUP]/tmp_tmp_2"
},
"env_prefixes": {
"PATH": [
@@ -2097,6 +2207,60 @@
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
+ "remove",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "delete metric center token"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
"listdir",
"[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io",
"--recursive"
@@ -2322,7 +2486,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_2/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_3/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -2377,7 +2541,7 @@
"/path/to/tmp/json",
"copy",
"[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip",
- "[CLEANUP]/tmp_tmp_2/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_3/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -2433,7 +2597,7 @@
"----",
"cp",
"-r",
- "[CLEANUP]/tmp_tmp_2/*",
+ "[CLEANUP]/tmp_tmp_3/*",
"gs://flutter_infra_release/"
],
"cwd": "[CACHE]/builder/src/flutter",
@@ -2493,7 +2657,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_3/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ "[CLEANUP]/tmp_tmp_4/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -2548,7 +2712,7 @@
"/path/to/tmp/json",
"copy",
"[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
- "[CLEANUP]/tmp_tmp_3/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ "[CLEANUP]/tmp_tmp_4/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -2604,7 +2768,7 @@
"----",
"cp",
"-r",
- "[CLEANUP]/tmp_tmp_3/*",
+ "[CLEANUP]/tmp_tmp_4/*",
"gs://download.flutter.io/"
],
"cwd": "[CACHE]/builder/src/flutter",
@@ -2664,7 +2828,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_4/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ "[CLEANUP]/tmp_tmp_5/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -2719,7 +2883,7 @@
"/path/to/tmp/json",
"copy",
"[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
- "[CLEANUP]/tmp_tmp_4/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ "[CLEANUP]/tmp_tmp_5/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -2775,7 +2939,7 @@
"----",
"cp",
"-r",
- "[CLEANUP]/tmp_tmp_4/*",
+ "[CLEANUP]/tmp_tmp_5/*",
"gs://download.flutter.io/"
],
"cwd": "[CACHE]/builder/src/flutter",
diff --git a/recipes/engine_v2/builder.expected/dart-internal-flutter.json b/recipes/engine_v2/builder.expected/dart-internal-flutter.json
index 5f94c38..d541375 100644
--- a/recipes/engine_v2/builder.expected/dart-internal-flutter.json
+++ b/recipes/engine_v2/builder.expected/dart-internal-flutter.json
@@ -554,6 +554,114 @@
"name": "generator1"
},
{
+ "cmd": [
+ "luci-auth",
+ "token",
+ "-scopes",
+ "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/datastore",
+ "-lifetime",
+ "3m"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "get access token for default account"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "extra.secret.token.should.not.be.logged",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "write metric center token"
+ },
+ {
"cmd": [],
"name": "Initialize logs"
},
@@ -690,13 +798,15 @@
"ENGINE_PATH": "[CACHE]/builder",
"FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
"FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GCP_PROJECT": "flutter-infra-staging",
"GIT_BRANCH": "",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
- "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789",
+ "TOKEN_PATH": "[CLEANUP]/tmp_tmp_2"
},
"env_prefixes": {
"PATH": [
@@ -921,6 +1031,60 @@
},
{
"cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "remove",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "delete metric center token"
+ },
+ {
+ "cmd": [
"[START_DIR]/reporter/snoopy_broker",
"-report-stage",
"-stage",
@@ -1201,7 +1365,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_2/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_3/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1256,7 +1420,7 @@
"/path/to/tmp/json",
"copy",
"[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip",
- "[CLEANUP]/tmp_tmp_2/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_3/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1312,7 +1476,7 @@
"----",
"cp",
"-r",
- "[CLEANUP]/tmp_tmp_2/*",
+ "[CLEANUP]/tmp_tmp_3/*",
"gs://flutter_infra_release/"
],
"cwd": "[CACHE]/builder/src/flutter",
@@ -1481,7 +1645,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_3/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ "[CLEANUP]/tmp_tmp_4/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1536,7 +1700,7 @@
"/path/to/tmp/json",
"copy",
"[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
- "[CLEANUP]/tmp_tmp_3/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ "[CLEANUP]/tmp_tmp_4/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1592,7 +1756,7 @@
"----",
"cp",
"-r",
- "[CLEANUP]/tmp_tmp_3/*",
+ "[CLEANUP]/tmp_tmp_4/*",
"gs://download.flutter.io/"
],
"cwd": "[CACHE]/builder/src/flutter",
@@ -1761,7 +1925,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_4/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ "[CLEANUP]/tmp_tmp_5/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1816,7 +1980,7 @@
"/path/to/tmp/json",
"copy",
"[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
- "[CLEANUP]/tmp_tmp_4/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ "[CLEANUP]/tmp_tmp_5/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1872,7 +2036,7 @@
"----",
"cp",
"-r",
- "[CLEANUP]/tmp_tmp_4/*",
+ "[CLEANUP]/tmp_tmp_5/*",
"gs://download.flutter.io/"
],
"cwd": "[CACHE]/builder/src/flutter",
diff --git a/recipes/engine_v2/builder.expected/mac.json b/recipes/engine_v2/builder.expected/mac.json
index fd8b11b..b9b04c7 100644
--- a/recipes/engine_v2/builder.expected/mac.json
+++ b/recipes/engine_v2/builder.expected/mac.json
@@ -2040,6 +2040,114 @@
"name": "generator1"
},
{
+ "cmd": [
+ "luci-auth",
+ "token",
+ "-scopes",
+ "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/datastore",
+ "-lifetime",
+ "3m"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "darwin",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "get access token for default account"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "extra.secret.token.should.not.be.logged",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "darwin",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "write metric center token"
+ },
+ {
"cmd": [],
"name": "Initialize logs"
},
@@ -2176,13 +2284,15 @@
"ENGINE_PATH": "[CACHE]/builder",
"FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
"FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GCP_PROJECT": "flutter-infra-staging",
"GIT_BRANCH": "",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "darwin",
- "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
+ "TOKEN_PATH": "[CLEANUP]/tmp_tmp_2"
},
"env_prefixes": {
"PATH": [
@@ -2412,6 +2522,60 @@
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
+ "remove",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "darwin",
+ "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "delete metric center token"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
"listdir",
"[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io",
"--recursive"
@@ -2805,7 +2969,7 @@
"cipd",
"ensure",
"-root",
- "[CLEANUP]/tmp_tmp_2",
+ "[CLEANUP]/tmp_tmp_3",
"-ensure-file",
"flutter/codesign/${platform} latest",
"-max-threads",
@@ -3867,7 +4031,7 @@
"ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
"CODESIGN_APP_SPECIFIC_PASSWORD": "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD",
"CODESIGN_APP_STORE_ID": "[CLEANUP]/CODESIGN_APP_STORE_ID",
- "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_2/codesign",
+ "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_3/codesign",
"CODESIGN_TEAM_ID": "[CLEANUP]/CODESIGN_TEAM_ID",
"DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
"ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
@@ -4029,7 +4193,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_3/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_4/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -4084,7 +4248,7 @@
"/path/to/tmp/json",
"copy",
"[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip",
- "[CLEANUP]/tmp_tmp_3/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_4/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -4140,7 +4304,7 @@
"----",
"cp",
"-r",
- "[CLEANUP]/tmp_tmp_3/*",
+ "[CLEANUP]/tmp_tmp_4/*",
"gs://flutter_infra_release/"
],
"cwd": "[CACHE]/builder/src/flutter",
@@ -4200,7 +4364,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_4/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ "[CLEANUP]/tmp_tmp_5/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -4255,7 +4419,7 @@
"/path/to/tmp/json",
"copy",
"[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
- "[CLEANUP]/tmp_tmp_4/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ "[CLEANUP]/tmp_tmp_5/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -4311,7 +4475,7 @@
"----",
"cp",
"-r",
- "[CLEANUP]/tmp_tmp_4/*",
+ "[CLEANUP]/tmp_tmp_5/*",
"gs://download.flutter.io/"
],
"cwd": "[CACHE]/builder/src/flutter",
@@ -4371,7 +4535,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_5/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ "[CLEANUP]/tmp_tmp_6/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -4426,7 +4590,7 @@
"/path/to/tmp/json",
"copy",
"[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
- "[CLEANUP]/tmp_tmp_5/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ "[CLEANUP]/tmp_tmp_6/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -4482,7 +4646,7 @@
"----",
"cp",
"-r",
- "[CLEANUP]/tmp_tmp_5/*",
+ "[CLEANUP]/tmp_tmp_6/*",
"gs://download.flutter.io/"
],
"cwd": "[CACHE]/builder/src/flutter",
diff --git a/recipes/engine_v2/builder.expected/monorepo.json b/recipes/engine_v2/builder.expected/monorepo.json
index 98a2ea8..d960cbe 100644
--- a/recipes/engine_v2/builder.expected/monorepo.json
+++ b/recipes/engine_v2/builder.expected/monorepo.json
@@ -1716,6 +1716,114 @@
"name": "generator1"
},
{
+ "cmd": [
+ "luci-auth",
+ "token",
+ "-scopes",
+ "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/datastore",
+ "-lifetime",
+ "3m"
+ ],
+ "cwd": "[CACHE]/builder/engine/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "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]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "get access token for default account"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "extra.secret.token.should.not.be.logged",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "cwd": "[CACHE]/builder/engine/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "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]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "write metric center token"
+ },
+ {
"cmd": [],
"name": "Initialize logs"
},
@@ -1852,13 +1960,15 @@
"ENGINE_PATH": "[CACHE]/builder",
"FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
"FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GCP_PROJECT": "flutter-infra-staging",
"GIT_BRANCH": "",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
- "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "TOKEN_PATH": "[CLEANUP]/tmp_tmp_2"
},
"env_prefixes": {
"PATH": [
@@ -2083,6 +2193,60 @@
},
{
"cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "remove",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "cwd": "[CACHE]/builder/engine/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "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]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "delete metric center token"
+ },
+ {
+ "cmd": [
"git",
"rev-parse",
"HEAD"
@@ -2253,7 +2417,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_2/monorepo/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_3/monorepo/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/engine/src/flutter",
"env": {
@@ -2308,7 +2472,7 @@
"/path/to/tmp/json",
"copy",
"[CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip",
- "[CLEANUP]/tmp_tmp_2/monorepo/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_3/monorepo/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/engine/src/flutter",
"env": {
@@ -2364,7 +2528,7 @@
"----",
"cp",
"-r",
- "[CLEANUP]/tmp_tmp_2/*",
+ "[CLEANUP]/tmp_tmp_3/*",
"gs://flutter_archives_v2/"
],
"cwd": "[CACHE]/builder/engine/src/flutter",
@@ -2424,7 +2588,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_3/monorepo"
+ "[CLEANUP]/tmp_tmp_4/monorepo"
],
"cwd": "[CACHE]/builder/engine/src/flutter",
"env": {
@@ -2479,7 +2643,7 @@
"/path/to/tmp/json",
"copy",
"[CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io",
- "[CLEANUP]/tmp_tmp_3/monorepo"
+ "[CLEANUP]/tmp_tmp_4/monorepo"
],
"cwd": "[CACHE]/builder/engine/src/flutter",
"env": {
@@ -2535,7 +2699,7 @@
"----",
"cp",
"-r",
- "[CLEANUP]/tmp_tmp_3/*",
+ "[CLEANUP]/tmp_tmp_4/*",
"gs://flutter_archives_v2/"
],
"cwd": "[CACHE]/builder/engine/src/flutter",
diff --git a/recipes/engine_v2/builder.expected/monorepo_tryjob.json b/recipes/engine_v2/builder.expected/monorepo_tryjob.json
index 81a4841..eec4341 100644
--- a/recipes/engine_v2/builder.expected/monorepo_tryjob.json
+++ b/recipes/engine_v2/builder.expected/monorepo_tryjob.json
@@ -1803,6 +1803,114 @@
"name": "generator1"
},
{
+ "cmd": [
+ "luci-auth",
+ "token",
+ "-scopes",
+ "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/datastore",
+ "-lifetime",
+ "3m"
+ ],
+ "cwd": "[CACHE]/builder/engine/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": ""
+ },
+ "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]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "get access token for default account"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "extra.secret.token.should.not.be.logged",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "cwd": "[CACHE]/builder/engine/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": ""
+ },
+ "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]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "write metric center token"
+ },
+ {
"cmd": [],
"name": "Initialize logs"
},
@@ -1939,13 +2047,15 @@
"ENGINE_PATH": "[CACHE]/builder",
"FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
"FLUTTER_TEST_OUTPUTS_DIR": "[CLEANUP]/flutter_logs_dir",
+ "GCP_PROJECT": "flutter-infra-staging",
"GIT_BRANCH": "",
"LUCI_BRANCH": "",
"LUCI_CI": "True",
"LUCI_PR": "",
"LUCI_WORKDIR": "[START_DIR]",
"OS": "linux",
- "REVISION": ""
+ "REVISION": "",
+ "TOKEN_PATH": "[CLEANUP]/tmp_tmp_2"
},
"env_prefixes": {
"PATH": [
@@ -2169,6 +2279,60 @@
]
},
{
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "remove",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "cwd": "[CACHE]/builder/engine/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+ "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+ "ENGINE_PATH": "[CACHE]/builder",
+ "GIT_BRANCH": "",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "LUCI_WORKDIR": "[START_DIR]",
+ "OS": "linux",
+ "REVISION": ""
+ },
+ "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]"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart:ci.sandbox"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "delete metric center token"
+ },
+ {
"cmd": [],
"name": "Identify branches"
},
diff --git a/recipes/engine_v2/builder.py b/recipes/engine_v2/builder.py
index 4f71171..c8e7a3b 100644
--- a/recipes/engine_v2/builder.py
+++ b/recipes/engine_v2/builder.py
@@ -25,10 +25,9 @@
}
}
"""
+import contextlib
import copy
-from contextlib import contextmanager
-
from google.protobuf import struct_pb2
from PB.recipes.flutter.engine.engine import InputProperties
from PB.recipes.flutter.engine.engine import EnvProperties
@@ -101,37 +100,42 @@
def run_tests(api, tests, checkout, env, env_prefixes):
"""Runs sub-build tests."""
+ available_contexts = api.flutter_deps.contexts()
# Run local tests in the builder to optimize resource usage.
for test in tests:
- command = [test.get('language')] if test.get('language') else []
- # Ideally local tests should be completely hermetic and in theory we can run
- # them in parallel using futures. I haven't found a flutter engine
- # configuration with more than one local test but once we find it we
- # should run the list of tests using parallelism.
- # TODO(godofredoc): Optimize to run multiple local tests in parallel.
- command.append(checkout.join(test.get('script')))
- command.extend(test.get('parameters', []))
- #api.step(test.get('name'), command)
- step_name = api.test_utils.test_step_name(test.get('name'))
+ # Run tests within a exitStack context
+ with contextlib.ExitStack() as exit_stack:
+ for context in test.get('contexts', []):
+ exit_stack.enter_context(available_contexts[context](env, env_prefixes))
+ command = [test.get('language')] if test.get('language') else []
+ # Ideally local tests should be completely hermetic and in theory we can run
+ # them in parallel using futures. I haven't found a flutter engine
+ # configuration with more than one local test but once we find it we
+ # should run the list of tests using parallelism.
+ # TODO(godofredoc): Optimize to run multiple local tests in parallel.
+ command.append(checkout.join(test.get('script')))
+ command.extend(test.get('parameters', []))
+ #api.step(test.get('name'), command)
+ step_name = api.test_utils.test_step_name(test.get('name'))
- def run_test():
- return api.step(step_name, command)
+ def run_test():
+ return api.step(step_name, command)
- # Rerun test step 3 times by default if failing.
- # TODO(keyonghan): notify tree gardener for test failures/flakes:
- # https://github.com/flutter/flutter/issues/89308
- api.logs_util.initialize_logs_collection(env)
- try:
- # Run within another context to make the logs env variable available to
- # test scripts.
- with api.context(env=env, env_prefixes=env_prefixes):
- api.retry.wrap(
- run_test,
- max_attempts=test.get('max_attempts', 3),
- step_name=test.get('name')
- )
- finally:
- api.logs_util.upload_logs(test.get('name'))
+ # Rerun test step 3 times by default if failing.
+ # TODO(keyonghan): notify tree gardener for test failures/flakes:
+ # https://github.com/flutter/flutter/issues/89308
+ api.logs_util.initialize_logs_collection(env)
+ try:
+ # Run within another context to make the logs env variable available to
+ # test scripts.
+ with api.context(env=env, env_prefixes=env_prefixes):
+ api.retry.wrap(
+ run_test,
+ max_attempts=test.get('max_attempts', 3),
+ step_name=test.get('name')
+ )
+ finally:
+ api.logs_util.upload_logs(test.get('name'))
def ReadBuildConfig(api, checkout_path):
@@ -267,7 +271,8 @@
}]
}, "tests": [{
"name": "mytest", "script": "myscript.sh",
- "parameters": ["param1", "param2"], "type": "local"
+ "parameters": ["param1", "param2"], "type": "local",
+ "contexts": ["metric_center_token"]
}]
}
yield api.test(