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