Reland "Update engine v2 archives api."
This changes allow to upload to different buckets and paths based using
monorepo logic, buildbucket buckets and a realm from the configuration
file.
This change will allow to test artifacts and migrate to engine v2 builds
using a single change to ci.yaml and build configuration files.
Change-Id: I28d7d67b084c918de83d809e9d66fa64ba00757b
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/39702
Reviewed-by: Yusuf Mohsinally <mohsinally@google.com>
Reviewed-by: Ricardo Amador <ricardoamador@google.com>
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
diff --git a/recipe_modules/archives/api.py b/recipe_modules/archives/api.py
index a5be00c..dab85a3 100644
--- a/recipe_modules/archives/api.py
+++ b/recipe_modules/archives/api.py
@@ -15,8 +15,11 @@
remote = attr.ib(type=str)
-DEFAULT_BUCKET = 'flutter_archives_v2'
ANDROID_ARTIFACTS_BUCKET = 'download.flutter.io'
+
+# Monorepo constant.
+MONOREPO = 'monorepo'
+
# Used for mock paths
DIRECTORY = 'DIRECTORY'
@@ -33,6 +36,33 @@
)
+# Bucket + initial prefix for artifact destination.
+LUCI_TO_GCS_PREFIX = {
+ 'flutter': 'flutter_infra_release/',
+ MONOREPO: 'flutter_archives_v2/monorepo/flutter_infra_release/',
+ 'prod': 'flutter_infra_release/',
+ 'staging': 'flutter_archives_v2/flutter_infra_release/',
+ 'try': 'flutter_archives_v2/flutter_infra_release/'
+}
+
+# Bucket + initial prefix for artifact destination.
+LUCI_TO_ANDROID_GCS_PREFIX = {
+ 'flutter': '',
+ MONOREPO: 'flutter_archives_v2/monorepo/',
+ 'prod': '',
+ 'staging': 'flutter_archives_v2/',
+ 'try': 'flutter_archives_v2/'
+}
+
+# Subpath for realms. A realm is used to separate file destinations
+# within the same configuration. E.g. production environment with
+# an experimental realm and production environment with a production realm.
+REALM_TO_PATH = {
+ 'production': '',
+ 'experimental': 'experimental'
+}
+
+
class ArchivesApi(recipe_api.RecipeApi):
"""Api to handle archives from engine_v2 recipes."""
@@ -79,7 +109,8 @@
A tuple with the bucket as the first item and the path to the
object as the second parameter.
"""
- matches = re.match('gs://(\w+)/(.+)', dst)
+
+ matches = re.match('gs://([\w.]+)/(.+)', dst)
return (matches.group(1), matches.group(2))
def upload_artifact(self, src, dst, metadata=None):
@@ -120,34 +151,35 @@
bucket, path, dst, name="download %s" % src
)
- def engine_v2_gcs_paths(self, checkout, archive_config, bucket=DEFAULT_BUCKET):
+ def engine_v2_gcs_paths(self, checkout, archive_config):
"""Calculates engine v2 GCS paths from an archive config.
Args:
checkout: (Path) the engine repository checkout folder.
archive_config: (dict) the archive configuration for a recipes v2 build.
- bucket: (str) the bucket used to calculate the object destination.
Returns:
A list of ArchivePaths with expected local and remote locations for the
generated artifacts.
"""
results = []
+ # Artifacts bucket is calculated using the LUCI bucket but we also use the realm to upload
+ # artifacts to the same bucket but different path when the build configurations use an experimental
+ # realm. Defaults to experimental.
+ artifact_realm = REALM_TO_PATH.get(archive_config.get('realm', ''), 'experimental')
# Do not archive if the build is a try build or has no input commit
if (self.m.buildbucket.build.input.gerrit_changes or
not self.m.buildbucket.gitiles_commit.project):
return results
- file_list = self._full_path_list(checkout, archive_config)
# Calculate prefix and commit.
- is_monorepo = self.m.buildbucket.gitiles_commit.project == 'monorepo'
-
+ is_monorepo = self.m.buildbucket.gitiles_commit.project == MONOREPO
+ bucket = MONOREPO if is_monorepo else self.m.buildbucket.build.builder.bucket
+ file_list = self._full_path_list(checkout, archive_config)
if is_monorepo:
commit = self.m.repo_util.get_commit(checkout.join('../../monorepo'))
- artifact_prefix = 'monorepo/'
else:
commit = self.m.repo_util.get_commit(checkout.join('flutter'))
- artifact_prefix = ''
for include_path in file_list:
is_android_artifact = ANDROID_ARTIFACTS_BUCKET in include_path
@@ -160,17 +192,23 @@
if is_android_artifact:
# We are not using a slash in the first parameter becase artifact_prefix
# already includes the slash.
- artifact_path = '%s%s/%s' % (
- artifact_prefix, rel_path, base_name)
+ artifact_path = '%s/%s' % (rel_path, base_name)
+ # Replace ANDROID_ARTIFACTS_BUCKET to include the realm.
+ old_location = '/'.join([ANDROID_ARTIFACTS_BUCKET, 'io', 'flutter'])
+ new_location = '/'.join(filter(
+ bool,
+ [ANDROID_ARTIFACTS_BUCKET, 'io', 'flutter', artifact_realm])
+ )
+ artifact_path = artifact_path.replace(old_location, new_location)
+ bucket_and_prefix = LUCI_TO_ANDROID_GCS_PREFIX.get(bucket)
else:
- final_rel_path = '%s/' % rel_path if rel_path else ''
- artifact_path = '%sflutter_infra_release/flutter/%s/%s%s' % (
- artifact_prefix, commit, final_rel_path, base_name)
+ bucket_and_prefix = LUCI_TO_GCS_PREFIX.get(bucket)
+ artifact_path = '/'.join(filter(bool, ['flutter', artifact_realm, commit, rel_path, base_name]))
results.append(
ArchivePaths(
include_path,
- 'gs://%s/%s' % (bucket, artifact_path)
+ 'gs://%s%s' % (bucket_and_prefix, artifact_path)
)
)
return results
diff --git a/recipe_modules/archives/examples/engine_v2_gcs_paths.py b/recipe_modules/archives/examples/engine_v2_gcs_paths.py
index 5cb0b64..524478d 100644
--- a/recipe_modules/archives/examples/engine_v2_gcs_paths.py
+++ b/recipe_modules/archives/examples/engine_v2_gcs_paths.py
@@ -22,35 +22,46 @@
"name": "android_profile",
"type": "gcs",
"base_path": "out/android_profile/zip_archives/",
+ "realm": "production",
"include_paths": [
"out/android_profile/zip_archives/artifact1.zip",
"out/android_profile/zip_archives/android-arm-profile/artifacts.zip",
"out/android_profile/zip_archives/android-arm-profile/linux-x64.zip",
"out/android_profile/zip_archives/android-arm-profile/symbols.zip",
- "out/android_profile/zip_archives/download.flutter.io"
+ "out/android_profile/zip_archives/download.flutter.io",
+ "out/android_profile/zip_archives/sky_engine.zip"
]
}
results = api.archives.engine_v2_gcs_paths(checkout, config)
expected_results = [
ArchivePaths(
local=str(api.path['start_dir'].join('out/android_profile/zip_archives/artifact1.zip')),
- remote='gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/artifact1.zip'
+ remote='gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/artifact1.zip'
),
ArchivePaths(
local=str(api.path['start_dir'].join('out/android_profile/zip_archives/android-arm-profile/artifacts.zip')),
- remote='gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip'),
+ remote='gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip'
+ ),
ArchivePaths(
local=str(api.path['start_dir'].join('out/android_profile/zip_archives/android-arm-profile/linux-x64.zip')),
- remote='gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/linux-x64.zip'),
+ remote='gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/linux-x64.zip'
+ ),
ArchivePaths(
local=str(api.path['start_dir'].join('out/android_profile/zip_archives/android-arm-profile/symbols.zip')),
- remote='gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/symbols.zip'),
+ remote='gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/symbols.zip'
+ ),
ArchivePaths(
local=str(api.path['start_dir'].join('out/android_profile/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar')),
- remote='gs://flutter_archives_v2/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar'),
+ remote='gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar'
+ ),
ArchivePaths(
local=str(api.path['start_dir'].join('out/android_profile/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom')),
- remote='gs://flutter_archives_v2/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom')
+ remote='gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom'
+ ),
+ ArchivePaths(
+ local=str(api.path['start_dir'].join('out/android_profile/zip_archives/sky_engine.zip')),
+ remote='gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/sky_engine.zip'
+ )
]
api.assertions.assertListEqual(expected_results, results)
diff --git a/recipe_modules/archives/examples/full.expected/failure.json b/recipe_modules/archives/examples/full.expected/failure.json
new file mode 100644
index 0000000..4ffeeba
--- /dev/null
+++ b/recipe_modules/archives/examples/full.expected/failure.json
@@ -0,0 +1,74 @@
+[
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "listdir",
+ "[START_DIR]/out/android_profile/zip_archives/download.flutter.io",
+ "--recursive"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Expand directory",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@listdir@[START_DIR]/out/android_profile/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar@@@",
+ "@@@STEP_LOG_LINE@listdir@[START_DIR]/out/android_profile/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom@@@",
+ "@@@STEP_LOG_END@listdir@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/flutter",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "git rev-parse"
+ },
+ {
+ "cmd": [],
+ "name": "RECIPE CRASH (Uncaught exception)",
+ "~followup_annotations": [
+ "@@@STEP_EXCEPTION@@@",
+ "The recipe has crashed at point 'Uncaught exception'!",
+ "",
+ "Traceback (most recent call last):",
+ " File \"RECIPE_REPO[flutter]/recipe_modules/archives/examples/full.py\", line 25, in RunSteps",
+ " assert False, 'Unexpected file generated %s' % result.remote",
+ "AssertionError('Unexpected file generated gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip')"
+ ]
+ },
+ {
+ "failure": {
+ "humanReason": "Uncaught Exception: AssertionError('Unexpected file generated gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip')"
+ },
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/archives/examples/full.expected/basic.json b/recipe_modules/archives/examples/full.expected/flutter_pool_experimental_realm.json
similarity index 76%
copy from recipe_modules/archives/examples/full.expected/basic.json
copy to recipe_modules/archives/examples/full.expected/flutter_pool_experimental_realm.json
index a3b5f1b..060c036 100644
--- a/recipe_modules/archives/examples/full.expected/basic.json
+++ b/recipe_modules/archives/examples/full.expected/flutter_pool_experimental_realm.json
@@ -13,7 +13,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart-internal:flutter"
},
"resultdb": {
"current_invocation": {
@@ -40,7 +40,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart-internal:flutter"
},
"resultdb": {
"current_invocation": {
@@ -62,12 +62,12 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart-internal:flutter"
},
"resultdb": {
"current_invocation": {
@@ -77,7 +77,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "name": "Ensure flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
},
{
"cmd": [
@@ -88,12 +88,12 @@
"/path/to/tmp/json",
"copy",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart-internal:flutter"
},
"resultdb": {
"current_invocation": {
@@ -103,7 +103,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "Copy gs://flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"cmd": [
@@ -116,12 +116,12 @@
"cp",
"-r",
"[CLEANUP]/tmp_tmp_1/*",
- "gs://flutter_archives_v2/"
+ "gs://flutter_infra_release/"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart-internal:flutter"
},
"resultdb": {
"current_invocation": {
@@ -131,9 +131,9 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "name": "gsutil flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"~followup_annotations": [
- "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
]
},
{
@@ -145,13 +145,13 @@
"RECIPE_REPO[depot_tools]/gsutil.py",
"----",
"cp",
- "gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "gs://flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart-internal:flutter"
},
"resultdb": {
"current_invocation": {
@@ -161,7 +161,7 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil download gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "gsutil download gs://flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"name": "$result"
diff --git a/recipe_modules/archives/examples/full.expected/basic.json b/recipe_modules/archives/examples/full.expected/flutter_pool_production_realm.json
similarity index 76%
copy from recipe_modules/archives/examples/full.expected/basic.json
copy to recipe_modules/archives/examples/full.expected/flutter_pool_production_realm.json
index a3b5f1b..55d5627 100644
--- a/recipe_modules/archives/examples/full.expected/basic.json
+++ b/recipe_modules/archives/examples/full.expected/flutter_pool_production_realm.json
@@ -13,7 +13,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart-internal:flutter"
},
"resultdb": {
"current_invocation": {
@@ -40,7 +40,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart-internal:flutter"
},
"resultdb": {
"current_invocation": {
@@ -62,12 +62,12 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart-internal:flutter"
},
"resultdb": {
"current_invocation": {
@@ -77,7 +77,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "name": "Ensure flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
},
{
"cmd": [
@@ -88,12 +88,12 @@
"/path/to/tmp/json",
"copy",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart-internal:flutter"
},
"resultdb": {
"current_invocation": {
@@ -103,7 +103,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "Copy gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"cmd": [
@@ -116,12 +116,12 @@
"cp",
"-r",
"[CLEANUP]/tmp_tmp_1/*",
- "gs://flutter_archives_v2/"
+ "gs://flutter_infra_release/"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart-internal:flutter"
},
"resultdb": {
"current_invocation": {
@@ -131,9 +131,9 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "name": "gsutil flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"~followup_annotations": [
- "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
]
},
{
@@ -145,13 +145,13 @@
"RECIPE_REPO[depot_tools]/gsutil.py",
"----",
"cp",
- "gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart-internal:flutter"
},
"resultdb": {
"current_invocation": {
@@ -161,7 +161,7 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil download gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "gsutil download gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"name": "$result"
diff --git a/recipe_modules/archives/examples/full.expected/basic.json b/recipe_modules/archives/examples/full.expected/monorepo_ci_experimental_realm.json
similarity index 74%
copy from recipe_modules/archives/examples/full.expected/basic.json
copy to recipe_modules/archives/examples/full.expected/monorepo_ci_experimental_realm.json
index a3b5f1b..9c6baae 100644
--- a/recipe_modules/archives/examples/full.expected/basic.json
+++ b/recipe_modules/archives/examples/full.expected/monorepo_ci_experimental_realm.json
@@ -13,7 +13,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart:ci.sandbox"
},
"resultdb": {
"current_invocation": {
@@ -36,11 +36,11 @@
"rev-parse",
"HEAD"
],
- "cwd": "[START_DIR]/flutter",
+ "cwd": "[START_DIR]/../../monorepo",
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart:ci.sandbox"
},
"resultdb": {
"current_invocation": {
@@ -62,12 +62,12 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/monorepo/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart:ci.sandbox"
},
"resultdb": {
"current_invocation": {
@@ -77,7 +77,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "name": "Ensure monorepo/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
},
{
"cmd": [
@@ -88,12 +88,12 @@
"/path/to/tmp/json",
"copy",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/monorepo/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart:ci.sandbox"
},
"resultdb": {
"current_invocation": {
@@ -103,7 +103,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "Copy gs://flutter_archives_v2/monorepo/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"cmd": [
@@ -121,7 +121,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart:ci.sandbox"
},
"resultdb": {
"current_invocation": {
@@ -131,7 +131,7 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "name": "gsutil monorepo/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"~followup_annotations": [
"@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
]
@@ -145,13 +145,13 @@
"RECIPE_REPO[depot_tools]/gsutil.py",
"----",
"cp",
- "gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "gs://flutter_archives_v2/monorepo/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "dart:ci.sandbox"
},
"resultdb": {
"current_invocation": {
@@ -161,7 +161,7 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil download gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "gsutil download gs://flutter_archives_v2/monorepo/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"name": "$result"
diff --git a/recipe_modules/archives/examples/full.expected/monorepo_try.json b/recipe_modules/archives/examples/full.expected/monorepo_try_experimental_realm.json
similarity index 100%
copy from recipe_modules/archives/examples/full.expected/monorepo_try.json
copy to recipe_modules/archives/examples/full.expected/monorepo_try_experimental_realm.json
diff --git a/recipe_modules/archives/examples/full.expected/monorepo_try.json b/recipe_modules/archives/examples/full.expected/monorepo_try_production_realm.json
similarity index 100%
rename from recipe_modules/archives/examples/full.expected/monorepo_try.json
rename to recipe_modules/archives/examples/full.expected/monorepo_try_production_realm.json
diff --git a/recipe_modules/archives/examples/full.expected/basic.json b/recipe_modules/archives/examples/full.expected/prod_pool_experimental_realm.json
similarity index 79%
copy from recipe_modules/archives/examples/full.expected/basic.json
copy to recipe_modules/archives/examples/full.expected/prod_pool_experimental_realm.json
index a3b5f1b..8ea5b54 100644
--- a/recipe_modules/archives/examples/full.expected/basic.json
+++ b/recipe_modules/archives/examples/full.expected/prod_pool_experimental_realm.json
@@ -62,7 +62,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
@@ -77,7 +77,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "name": "Ensure flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
},
{
"cmd": [
@@ -88,7 +88,7 @@
"/path/to/tmp/json",
"copy",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
@@ -103,7 +103,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "Copy gs://flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"cmd": [
@@ -116,7 +116,7 @@
"cp",
"-r",
"[CLEANUP]/tmp_tmp_1/*",
- "gs://flutter_archives_v2/"
+ "gs://flutter_infra_release/"
],
"infra_step": true,
"luci_context": {
@@ -131,9 +131,9 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "name": "gsutil flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"~followup_annotations": [
- "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
]
},
{
@@ -145,7 +145,7 @@
"RECIPE_REPO[depot_tools]/gsutil.py",
"----",
"cp",
- "gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "gs://flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip"
],
"infra_step": true,
@@ -161,7 +161,7 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil download gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "gsutil download gs://flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"name": "$result"
diff --git a/recipe_modules/archives/examples/full.expected/basic.json b/recipe_modules/archives/examples/full.expected/prod_pool_production_realm.json
similarity index 79%
copy from recipe_modules/archives/examples/full.expected/basic.json
copy to recipe_modules/archives/examples/full.expected/prod_pool_production_realm.json
index a3b5f1b..ee6785e 100644
--- a/recipe_modules/archives/examples/full.expected/basic.json
+++ b/recipe_modules/archives/examples/full.expected/prod_pool_production_realm.json
@@ -62,7 +62,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
@@ -77,7 +77,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "name": "Ensure flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
},
{
"cmd": [
@@ -88,7 +88,7 @@
"/path/to/tmp/json",
"copy",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
@@ -103,7 +103,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "Copy gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"cmd": [
@@ -116,7 +116,7 @@
"cp",
"-r",
"[CLEANUP]/tmp_tmp_1/*",
- "gs://flutter_archives_v2/"
+ "gs://flutter_infra_release/"
],
"infra_step": true,
"luci_context": {
@@ -131,9 +131,9 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "name": "gsutil flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"~followup_annotations": [
- "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
]
},
{
@@ -145,7 +145,7 @@
"RECIPE_REPO[depot_tools]/gsutil.py",
"----",
"cp",
- "gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip"
],
"infra_step": true,
@@ -161,7 +161,7 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil download gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "gsutil download gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"name": "$result"
diff --git a/recipe_modules/archives/examples/full.expected/basic.json b/recipe_modules/archives/examples/full.expected/staging_pool_experimental_realm.json
similarity index 78%
copy from recipe_modules/archives/examples/full.expected/basic.json
copy to recipe_modules/archives/examples/full.expected/staging_pool_experimental_realm.json
index a3b5f1b..97c28e9 100644
--- a/recipe_modules/archives/examples/full.expected/basic.json
+++ b/recipe_modules/archives/examples/full.expected/staging_pool_experimental_realm.json
@@ -13,7 +13,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:staging"
},
"resultdb": {
"current_invocation": {
@@ -40,7 +40,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:staging"
},
"resultdb": {
"current_invocation": {
@@ -62,12 +62,12 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:staging"
},
"resultdb": {
"current_invocation": {
@@ -77,7 +77,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "name": "Ensure flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
},
{
"cmd": [
@@ -88,12 +88,12 @@
"/path/to/tmp/json",
"copy",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:staging"
},
"resultdb": {
"current_invocation": {
@@ -103,7 +103,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"cmd": [
@@ -121,7 +121,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:staging"
},
"resultdb": {
"current_invocation": {
@@ -131,7 +131,7 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "name": "gsutil flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"~followup_annotations": [
"@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
]
@@ -145,13 +145,13 @@
"RECIPE_REPO[depot_tools]/gsutil.py",
"----",
"cp",
- "gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "gs://flutter_archives_v2/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:staging"
},
"resultdb": {
"current_invocation": {
@@ -161,7 +161,7 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil download gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "gsutil download gs://flutter_archives_v2/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"name": "$result"
diff --git a/recipe_modules/archives/examples/full.expected/basic.json b/recipe_modules/archives/examples/full.expected/staging_pool_production_realm.json
similarity index 95%
copy from recipe_modules/archives/examples/full.expected/basic.json
copy to recipe_modules/archives/examples/full.expected/staging_pool_production_realm.json
index a3b5f1b..ef6b6fb 100644
--- a/recipe_modules/archives/examples/full.expected/basic.json
+++ b/recipe_modules/archives/examples/full.expected/staging_pool_production_realm.json
@@ -13,7 +13,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:staging"
},
"resultdb": {
"current_invocation": {
@@ -40,7 +40,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:staging"
},
"resultdb": {
"current_invocation": {
@@ -67,7 +67,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:staging"
},
"resultdb": {
"current_invocation": {
@@ -93,7 +93,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:staging"
},
"resultdb": {
"current_invocation": {
@@ -121,7 +121,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:staging"
},
"resultdb": {
"current_invocation": {
@@ -151,7 +151,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:staging"
},
"resultdb": {
"current_invocation": {
diff --git a/recipe_modules/archives/examples/full.expected/basic.json b/recipe_modules/archives/examples/full.expected/try_pool_experimental_realm.json
similarity index 78%
copy from recipe_modules/archives/examples/full.expected/basic.json
copy to recipe_modules/archives/examples/full.expected/try_pool_experimental_realm.json
index a3b5f1b..374952e 100644
--- a/recipe_modules/archives/examples/full.expected/basic.json
+++ b/recipe_modules/archives/examples/full.expected/try_pool_experimental_realm.json
@@ -13,7 +13,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:try"
},
"resultdb": {
"current_invocation": {
@@ -40,7 +40,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:try"
},
"resultdb": {
"current_invocation": {
@@ -62,12 +62,12 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:try"
},
"resultdb": {
"current_invocation": {
@@ -77,7 +77,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "name": "Ensure flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
},
{
"cmd": [
@@ -88,12 +88,12 @@
"/path/to/tmp/json",
"copy",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
+ "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:try"
},
"resultdb": {
"current_invocation": {
@@ -103,7 +103,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"cmd": [
@@ -121,7 +121,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:try"
},
"resultdb": {
"current_invocation": {
@@ -131,7 +131,7 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "name": "gsutil flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"~followup_annotations": [
"@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
]
@@ -145,13 +145,13 @@
"RECIPE_REPO[depot_tools]/gsutil.py",
"----",
"cp",
- "gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
+ "gs://flutter_archives_v2/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
"[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip"
],
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:try"
},
"resultdb": {
"current_invocation": {
@@ -161,7 +161,7 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil download gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
+ "name": "gsutil download gs://flutter_archives_v2/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
},
{
"name": "$result"
diff --git a/recipe_modules/archives/examples/full.expected/basic.json b/recipe_modules/archives/examples/full.expected/try_pool_production_realm.json
similarity index 95%
rename from recipe_modules/archives/examples/full.expected/basic.json
rename to recipe_modules/archives/examples/full.expected/try_pool_production_realm.json
index a3b5f1b..dfb3dcd 100644
--- a/recipe_modules/archives/examples/full.expected/basic.json
+++ b/recipe_modules/archives/examples/full.expected/try_pool_production_realm.json
@@ -13,7 +13,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:try"
},
"resultdb": {
"current_invocation": {
@@ -40,7 +40,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:try"
},
"resultdb": {
"current_invocation": {
@@ -67,7 +67,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:try"
},
"resultdb": {
"current_invocation": {
@@ -93,7 +93,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:try"
},
"resultdb": {
"current_invocation": {
@@ -121,7 +121,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:try"
},
"resultdb": {
"current_invocation": {
@@ -151,7 +151,7 @@
"infra_step": true,
"luci_context": {
"realm": {
- "name": "flutter:prod"
+ "name": "flutter:try"
},
"resultdb": {
"current_invocation": {
diff --git a/recipe_modules/archives/examples/full.py b/recipe_modules/archives/examples/full.py
index 36e664b..72db93d 100644
--- a/recipe_modules/archives/examples/full.py
+++ b/recipe_modules/archives/examples/full.py
@@ -2,22 +2,37 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-from recipe_engine.post_process import DoesNotRun, Filter, StatusFailure
+import copy
+from recipe_engine.post_process import DoesNotRun, Filter, StatusException
DEPS = [
'flutter/archives',
'flutter/monorepo',
'recipe_engine/buildbucket',
'recipe_engine/path',
+ 'recipe_engine/properties',
'recipe_engine/raw_io',
]
def RunSteps(api):
checkout = api.path['start_dir']
- config = {
+ config = api.properties.get('config')
+ expected_destinations = api.properties.get('expected_destinations')
+ results = api.archives.engine_v2_gcs_paths(checkout, config)
+ for result in results:
+ if result.remote not in expected_destinations:
+ assert False, 'Unexpected file generated %s' % result.remote
+ if not results: return
+ api.archives.upload_artifact(results[0].local, results[0].remote)
+ api.archives.download(results[0].remote, results[0].local)
+
+
+def GenTests(api):
+ archive_config = {
"name": "android_profile",
"type": "gcs",
+ "realm": "production",
"base_path": "out/android_profile/zip_archives/",
"include_paths": [
"out/android_profile/zip_archives/android-arm-profile/artifacts.zip",
@@ -26,15 +41,68 @@
"out/android_profile/zip_archives/download.flutter.io"
]
}
- results = api.archives.engine_v2_gcs_paths(checkout, config)
- if not results: return
- api.archives.upload_artifact(results[0].local, results[0].remote)
- api.archives.download(results[0].remote, results[0].local)
-
-def GenTests(api):
+ # Try LUCI pool with "production" realm in build configuration file.
+ try_pool_production_realm = [
+ 'gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip',
+ 'gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/linux-x64.zip',
+ 'gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/symbols.zip',
+ 'gs://flutter_archives_v2/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar',
+ 'gs://flutter_archives_v2/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom'
+ ]
yield api.test(
- 'basic',
+ 'try_pool_production_realm',
+ api.properties(config=archive_config, expected_destinations=try_pool_production_realm),
+ api.buildbucket.ci_build(
+ project='flutter',
+ bucket='try',
+ git_repo='https://flutter.googlesource.com/mirrors/engine',
+ git_ref='refs/heads/main'
+ ),
+ api.step_data(
+ 'git rev-parse',
+ stdout=api.raw_io
+ .output_text('12345abcde12345abcde12345abcde12345abcde\n')
+ )
+ )
+
+ # Try LUCI pool with "experimental" realm in build configuration file.
+ try_pool_experimental_realm = [
+ 'gs://flutter_archives_v2/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip',
+ 'gs://flutter_archives_v2/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/linux-x64.zip',
+ 'gs://flutter_archives_v2/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/symbols.zip',
+ 'gs://flutter_archives_v2/download.flutter.io/io/flutter/experimental/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar',
+ 'gs://flutter_archives_v2/download.flutter.io/io/flutter/experimental/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom'
+ ]
+ try_pool_experimental_realm_config = copy.deepcopy(archive_config)
+ try_pool_experimental_realm_config['realm'] = 'experimental'
+ yield api.test(
+ 'try_pool_experimental_realm',
+ api.properties(config=try_pool_experimental_realm_config, expected_destinations=try_pool_experimental_realm),
+ api.buildbucket.ci_build(
+ project='flutter',
+ bucket='try',
+ git_repo='https://flutter.googlesource.com/mirrors/engine',
+ git_ref='refs/heads/main'
+ ),
+ api.step_data(
+ 'git rev-parse',
+ stdout=api.raw_io
+ .output_text('12345abcde12345abcde12345abcde12345abcde\n')
+ )
+ )
+
+ # Prod LUCI pool with "production" realm in build configuration file.
+ prod_pool_production_realm = [
+ 'gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip',
+ 'gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/linux-x64.zip',
+ 'gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/symbols.zip',
+ 'gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar',
+ 'gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom'
+ ]
+ yield api.test(
+ 'prod_pool_production_realm',
+ api.properties(config=archive_config, expected_destinations=prod_pool_production_realm),
api.buildbucket.ci_build(
project='flutter',
bucket='prod',
@@ -47,15 +115,205 @@
.output_text('12345abcde12345abcde12345abcde12345abcde\n')
)
)
+
+ # Prod LUCI pool with "experimental" realm in build configuration file.
+ prod_pool_experimental_realm = [
+ 'gs://flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip',
+ 'gs://flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/linux-x64.zip',
+ 'gs://flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/symbols.zip',
+ 'gs://download.flutter.io/io/flutter/experimental/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar',
+ 'gs://download.flutter.io/io/flutter/experimental/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom'
+ ]
+ prod_pool_experimental_realm_config = copy.deepcopy(archive_config)
+ prod_pool_experimental_realm_config['realm'] = 'experimental'
yield api.test(
- 'monorepo_ci', api.monorepo.ci_build(),
+ 'prod_pool_experimental_realm',
+ api.properties(config=prod_pool_experimental_realm_config, expected_destinations=prod_pool_experimental_realm),
+ api.buildbucket.ci_build(
+ project='flutter',
+ bucket='prod',
+ git_repo='https://flutter.googlesource.com/mirrors/engine',
+ git_ref='refs/heads/main'
+ ),
api.step_data(
'git rev-parse',
stdout=api.raw_io
.output_text('12345abcde12345abcde12345abcde12345abcde\n')
)
)
+
+ # Flutter LUCI pool with "production" realm in build configuration file.
+ flutter_pool_production_realm = [
+ 'gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip',
+ 'gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/linux-x64.zip',
+ 'gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/symbols.zip',
+ 'gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar',
+ 'gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom'
+ ]
yield api.test(
- 'monorepo_try',
+ 'flutter_pool_production_realm',
+ api.properties(config=archive_config, expected_destinations=flutter_pool_production_realm),
+ api.buildbucket.ci_build(
+ project='dart-internal',
+ bucket='flutter',
+ git_repo='https://flutter.googlesource.com/mirrors/engine',
+ git_ref='refs/heads/main'
+ ),
+ api.step_data(
+ 'git rev-parse',
+ stdout=api.raw_io
+ .output_text('12345abcde12345abcde12345abcde12345abcde\n')
+ )
+ )
+
+ # Flutter LUCI pool with "experimental" realm in build configuration file.
+ flutter_pool_production_realm = [
+ 'gs://flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip',
+ 'gs://flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/linux-x64.zip',
+ 'gs://flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/symbols.zip',
+ 'gs://download.flutter.io/io/flutter/experimental/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar',
+ 'gs://download.flutter.io/io/flutter/experimental/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom'
+ ]
+ flutter_pool_experimental_realm_config = copy.deepcopy(archive_config)
+ flutter_pool_experimental_realm_config['realm'] = 'experimental'
+ yield api.test(
+ 'flutter_pool_experimental_realm',
+ api.properties(config=flutter_pool_experimental_realm_config, expected_destinations=flutter_pool_production_realm),
+ api.buildbucket.ci_build(
+ project='dart-internal',
+ bucket='flutter',
+ git_repo='https://flutter.googlesource.com/mirrors/engine',
+ git_ref='refs/heads/main'
+ ),
+ api.step_data(
+ 'git rev-parse',
+ stdout=api.raw_io
+ .output_text('12345abcde12345abcde12345abcde12345abcde\n')
+ )
+ )
+
+ # Staging LUCI pool with "production" realm in build configuration file.
+ staging_pool_production_realm = [
+ 'gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip',
+ 'gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/linux-x64.zip',
+ 'gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/symbols.zip',
+ 'gs://flutter_archives_v2/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar',
+ 'gs://flutter_archives_v2/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom'
+ ]
+ yield api.test(
+ 'staging_pool_production_realm',
+ api.properties(config=archive_config, expected_destinations=staging_pool_production_realm),
+ api.buildbucket.ci_build(
+ project='flutter',
+ bucket='staging',
+ git_repo='https://flutter.googlesource.com/mirrors/engine',
+ git_ref='refs/heads/main'
+ ),
+ api.step_data(
+ 'git rev-parse',
+ stdout=api.raw_io
+ .output_text('12345abcde12345abcde12345abcde12345abcde\n')
+ )
+ )
+
+ # Staging LUCI pool with "production" realm in build configuration file.
+ staging_pool_production_realm = [
+ 'gs://flutter_archives_v2/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip',
+ 'gs://flutter_archives_v2/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/linux-x64.zip',
+ 'gs://flutter_archives_v2/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/symbols.zip',
+ 'gs://flutter_archives_v2/download.flutter.io/io/flutter/experimental/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar',
+ 'gs://flutter_archives_v2/download.flutter.io/io/flutter/experimental/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom'
+ ]
+ staging_pool_experimental_realm_config = copy.deepcopy(archive_config)
+ staging_pool_experimental_realm_config['realm'] = 'experimental'
+ yield api.test(
+ 'staging_pool_experimental_realm',
+ api.properties(config=staging_pool_experimental_realm_config, expected_destinations=staging_pool_production_realm),
+ api.buildbucket.ci_build(
+ project='flutter',
+ bucket='staging',
+ git_repo='https://flutter.googlesource.com/mirrors/engine',
+ git_ref='refs/heads/main'
+ ),
+ api.step_data(
+ 'git rev-parse',
+ stdout=api.raw_io
+ .output_text('12345abcde12345abcde12345abcde12345abcde\n')
+ )
+ )
+
+ # Monorepo ci with "production" realm in build configuration file.
+ monorepo_production_realm = [
+ 'gs://flutter_archives_v2/monorepo/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip',
+ 'gs://flutter_archives_v2/monorepo/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/linux-x64.zip',
+ 'gs://flutter_archives_v2/monorepo/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/symbols.zip',
+ 'gs://flutter_archives_v2/monorepo/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar',
+ 'gs://flutter_archives_v2/monorepo/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom'
+ ]
+ yield api.test(
+ 'monorepo_ci', api.monorepo.ci_build(),
+ api.properties(config=archive_config, expected_destinations=monorepo_production_realm),
+ api.step_data(
+ 'git rev-parse',
+ stdout=api.raw_io
+ .output_text('12345abcde12345abcde12345abcde12345abcde\n')
+ )
+ )
+
+ # Monorepo ci with "experimental" realm in build configuration file.
+ monorepo_experimental_realm_config = copy.deepcopy(archive_config)
+ monorepo_experimental_realm_config['realm'] = 'experimental'
+ monorepo_experimental_realm = [
+ 'gs://flutter_archives_v2/monorepo/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip',
+ 'gs://flutter_archives_v2/monorepo/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/linux-x64.zip',
+ 'gs://flutter_archives_v2/monorepo/flutter_infra_release/flutter/experimental/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/symbols.zip',
+ 'gs://flutter_archives_v2/monorepo/download.flutter.io/io/flutter/experimental/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar',
+ 'gs://flutter_archives_v2/monorepo/download.flutter.io/io/flutter/experimental/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom'
+ ]
+ yield api.test(
+ 'monorepo_ci_experimental_realm', api.monorepo.ci_build(),
+ api.properties(config=monorepo_experimental_realm_config, expected_destinations=monorepo_experimental_realm),
+ api.step_data(
+ 'git rev-parse',
+ stdout=api.raw_io
+ .output_text('12345abcde12345abcde12345abcde12345abcde\n')
+ )
+ )
+
+ # Monorepo try with "production" realm in build configuration file.
+ monorepo_try_realm = [
+ ]
+ yield api.test(
+ 'monorepo_try_production_realm',
+ api.properties(config=archive_config, expected_destinations=monorepo_try_realm),
api.monorepo.try_build(),
)
+
+ # Monorepo try with "experimental" realm in build configuration file.
+ monorepo_try_realm = [
+ ]
+ monorepo_experimental_realm_config = copy.deepcopy(archive_config)
+ monorepo_experimental_realm_config['realm'] = 'experimental'
+ yield api.test(
+ 'monorepo_try_experimental_realm',
+ api.properties(config=archive_config, expected_destinations=monorepo_try_realm),
+ api.monorepo.try_build(),
+ )
+
+ yield api.test(
+ 'failure',
+ api.properties(config=archive_config, expected_destinations=['/abc/cde.zip']),
+ api.buildbucket.ci_build(
+ project='flutter',
+ bucket='try',
+ git_repo='https://flutter.googlesource.com/mirrors/engine',
+ git_ref='refs/heads/main'
+ ),
+ api.step_data(
+ 'git rev-parse',
+ stdout=api.raw_io
+ .output_text('12345abcde12345abcde12345abcde12345abcde\n')
+ ),
+ api.expect_exception('AssertionError'),
+ api.post_process(StatusException)
+ )
diff --git a/recipes/engine_v2/builder.expected/basic.json b/recipes/engine_v2/builder.expected/basic.json
index d5d3fd0..6cd4004 100644
--- a/recipes/engine_v2/builder.expected/basic.json
+++ b/recipes/engine_v2/builder.expected/basic.json
@@ -814,6 +814,56 @@
},
{
"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"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Expand directory",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@listdir@[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@@@",
+ "@@@STEP_LOG_LINE@listdir@[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@@@",
+ "@@@STEP_LOG_END@listdir@@@"
+ ]
+ },
+ {
+ "cmd": [
"git",
"rev-parse",
"HEAD"
@@ -862,7 +912,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_1/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -896,7 +946,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "name": "Ensure flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
},
{
"cmd": [
@@ -907,7 +957,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_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_1/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -941,7 +991,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
+ "name": "Copy gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
},
{
"cmd": [
@@ -954,7 +1004,7 @@
"cp",
"-r",
"[CLEANUP]/tmp_tmp_1/*",
- "gs://flutter_archives_v2/"
+ "gs://flutter_infra_release/"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -988,9 +1038,9 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
+ "name": "gsutil flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
"~followup_annotations": [
- "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
]
},
{
@@ -1003,7 +1053,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_2"
+ "[CLEANUP]/tmp_tmp_2/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1037,7 +1087,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure /"
+ "name": "Ensure io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
},
{
"cmd": [
@@ -1047,8 +1097,8 @@
"--json-output",
"/path/to/tmp/json",
"copy",
- "[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io",
- "[CLEANUP]/tmp_tmp_2"
+ "[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_2/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1082,7 +1132,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2//download.flutter.io"
+ "name": "Copy gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar"
},
{
"cmd": [
@@ -1095,7 +1145,7 @@
"cp",
"-r",
"[CLEANUP]/tmp_tmp_2/*",
- "gs://flutter_archives_v2/"
+ "gs://download.flutter.io/"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1129,9 +1179,150 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil /download.flutter.io",
+ "name": "gsutil io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
"~followup_annotations": [
- "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CLEANUP]/tmp_tmp_3/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Ensure io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584 (2)"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/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_3/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Copy gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom"
+ },
+ {
+ "cmd": [
+ "python3",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "----",
+ "cp",
+ "-r",
+ "[CLEANUP]/tmp_tmp_3/*",
+ "gs://download.flutter.io/"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "gsutil io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
+ "~followup_annotations": [
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
]
},
{
diff --git a/recipes/engine_v2/builder.expected/dart-internal-flutter.json b/recipes/engine_v2/builder.expected/dart-internal-flutter.json
index 6be81bb..4adefa7 100644
--- a/recipes/engine_v2/builder.expected/dart-internal-flutter.json
+++ b/recipes/engine_v2/builder.expected/dart-internal-flutter.json
@@ -961,6 +961,56 @@
},
{
"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"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Expand directory",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@listdir@[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@@@",
+ "@@@STEP_LOG_LINE@listdir@[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@@@",
+ "@@@STEP_LOG_END@listdir@@@"
+ ]
+ },
+ {
+ "cmd": [
"git",
"rev-parse",
"HEAD"
@@ -1009,7 +1059,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_1/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1043,7 +1093,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "name": "Ensure flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
},
{
"cmd": [
@@ -1054,7 +1104,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_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_1/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1088,7 +1138,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
+ "name": "Copy gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
},
{
"cmd": [
@@ -1101,7 +1151,7 @@
"cp",
"-r",
"[CLEANUP]/tmp_tmp_1/*",
- "gs://flutter_archives_v2/"
+ "gs://flutter_infra_release/"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1135,9 +1185,9 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
+ "name": "gsutil flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
"~followup_annotations": [
- "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
]
},
{
@@ -1194,7 +1244,7 @@
"-digest",
"514e872bece8d7ee7d52fd8e7ef7b801e964e9d45bf1b7c084369533781038c7",
"-gcs-uri",
- "gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
+ "gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1239,7 +1289,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_2"
+ "[CLEANUP]/tmp_tmp_2/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1273,7 +1323,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure /"
+ "name": "Ensure io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
},
{
"cmd": [
@@ -1283,8 +1333,8 @@
"--json-output",
"/path/to/tmp/json",
"copy",
- "[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io",
- "[CLEANUP]/tmp_tmp_2"
+ "[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_2/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1318,7 +1368,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2//download.flutter.io"
+ "name": "Copy gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar"
},
{
"cmd": [
@@ -1331,7 +1381,7 @@
"cp",
"-r",
"[CLEANUP]/tmp_tmp_2/*",
- "gs://flutter_archives_v2/"
+ "gs://download.flutter.io/"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1365,9 +1415,9 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil /download.flutter.io",
+ "name": "gsutil io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
"~followup_annotations": [
- "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
]
},
{
@@ -1378,7 +1428,7 @@
"--json-output",
"/path/to/tmp/json",
"file_hash",
- "[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io"
+ "[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"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1414,7 +1464,7 @@
},
"name": "Compute file hash (2)",
"~followup_annotations": [
- "@@@STEP_TEXT@Hash calculated: e562a8287043cc08772883e4f94791f8909c9f206c74e3db0f6977d2855c86ba@@@"
+ "@@@STEP_TEXT@Hash calculated: 6689191ad27da9fce89670be7c2026d7c54c505dbf62803b64c538970cbc6169@@@"
]
},
{
@@ -1422,9 +1472,9 @@
"[START_DIR]/reporter/snoopy_broker",
"-report-gcs",
"-digest",
- "e562a8287043cc08772883e4f94791f8909c9f206c74e3db0f6977d2855c86ba",
+ "6689191ad27da9fce89670be7c2026d7c54c505dbf62803b64c538970cbc6169",
"-gcs-uri",
- "gs://flutter_archives_v2//download.flutter.io"
+ "gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1461,6 +1511,236 @@
},
{
"cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CLEANUP]/tmp_tmp_3/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Ensure io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584 (2)"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/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_3/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Copy gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom"
+ },
+ {
+ "cmd": [
+ "python3",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "----",
+ "cp",
+ "-r",
+ "[CLEANUP]/tmp_tmp_3/*",
+ "gs://download.flutter.io/"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "gsutil io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
+ "~followup_annotations": [
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "file_hash",
+ "[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"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Compute file hash (3)",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@Hash calculated: f266d3932d72969e719dbf778847d9e47408016bf74262830d3db2b447542fcf@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/reporter/snoopy_broker",
+ "-report-gcs",
+ "-digest",
+ "f266d3932d72969e719dbf778847d9e47408016bf74262830d3db2b447542fcf",
+ "-gcs-uri",
+ "gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "luci_context": {
+ "realm": {
+ "name": "dart-internal:flutter"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "snoop: report_gcs (3)"
+ },
+ {
+ "cmd": [
"[START_DIR]/reporter/snoopy_broker",
"-report-stage",
"-stage",
diff --git a/recipes/engine_v2/builder.expected/mac.json b/recipes/engine_v2/builder.expected/mac.json
index 944276e..1a0b18d 100644
--- a/recipes/engine_v2/builder.expected/mac.json
+++ b/recipes/engine_v2/builder.expected/mac.json
@@ -948,6 +948,56 @@
},
{
"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"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Expand directory",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@listdir@[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@@@",
+ "@@@STEP_LOG_LINE@listdir@[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@@@",
+ "@@@STEP_LOG_END@listdir@@@"
+ ]
+ },
+ {
+ "cmd": [
"git",
"rev-parse",
"HEAD"
@@ -996,7 +1046,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_1/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1030,7 +1080,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "name": "Ensure flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
},
{
"cmd": [
@@ -1041,7 +1091,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_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
+ "[CLEANUP]/tmp_tmp_1/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1075,7 +1125,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
+ "name": "Copy gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
},
{
"cmd": [
@@ -1088,7 +1138,7 @@
"cp",
"-r",
"[CLEANUP]/tmp_tmp_1/*",
- "gs://flutter_archives_v2/"
+ "gs://flutter_infra_release/"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1122,9 +1172,9 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
+ "name": "gsutil flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
"~followup_annotations": [
- "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
]
},
{
@@ -1137,7 +1187,7 @@
"ensure-directory",
"--mode",
"0777",
- "[CLEANUP]/tmp_tmp_2"
+ "[CLEANUP]/tmp_tmp_2/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1171,7 +1221,7 @@
"hostname": "rdbhost"
}
},
- "name": "Ensure /"
+ "name": "Ensure io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
},
{
"cmd": [
@@ -1181,8 +1231,8 @@
"--json-output",
"/path/to/tmp/json",
"copy",
- "[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io",
- "[CLEANUP]/tmp_tmp_2"
+ "[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_2/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1216,7 +1266,7 @@
"hostname": "rdbhost"
}
},
- "name": "Copy gs://flutter_archives_v2//download.flutter.io"
+ "name": "Copy gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar"
},
{
"cmd": [
@@ -1229,7 +1279,7 @@
"cp",
"-r",
"[CLEANUP]/tmp_tmp_2/*",
- "gs://flutter_archives_v2/"
+ "gs://download.flutter.io/"
],
"cwd": "[CACHE]/builder/src/flutter",
"env": {
@@ -1263,9 +1313,150 @@
"hostname": "rdbhost"
}
},
- "name": "gsutil /download.flutter.io",
+ "name": "gsutil io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
"~followup_annotations": [
- "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CLEANUP]/tmp_tmp_3/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Ensure io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584 (2)"
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/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_3/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Copy gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom"
+ },
+ {
+ "cmd": [
+ "python3",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "----",
+ "cp",
+ "-r",
+ "[CLEANUP]/tmp_tmp_3/*",
+ "gs://download.flutter.io/"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "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"
+ ]
+ },
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "flutter:prod"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "gsutil io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
+ "~followup_annotations": [
+ "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
]
},
{
diff --git a/recipes/engine_v2/builder.py b/recipes/engine_v2/builder.py
index 3cfb6e5..cb98f21 100644
--- a/recipes/engine_v2/builder.py
+++ b/recipes/engine_v2/builder.py
@@ -65,8 +65,33 @@
ANDROID_ARTIFACTS_BUCKET = 'download.flutter.io'
+# Relative paths used to mock paths for testing.
+MOCK_JAR_PATH = (
+ 'io/flutter/x86_debug/'
+ '1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/'
+ 'x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar'
+)
+MOCK_POM_PATH = (
+ 'io/flutter/x86_debug/'
+ '1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/'
+ 'x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom'
+)
+
+# Used for mock paths
+DIRECTORY = 'DIRECTORY'
+
+
def Build(api, checkout, env, env_prefixes, outputs):
"""Builds a flavor identified as a set of gn and ninja configs."""
+
+ # Mock data for tests. This is required for the archive api to expand the directory to full path
+ # of files.
+ api.path.mock_add_paths(
+ api.path['cache'].join(
+ 'builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io'),
+ DIRECTORY
+ )
+
ninja_tool = {
"ninja": api.build_util.build,
}
@@ -186,6 +211,7 @@
{
"name": "android_jit_release_x86",
"type": "gcs",
+ "realm": "production",
"base_path": "out/android_jit_release_x86/zip_archives/",
"include_paths": [
"out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip",