Reland: Add new recipe to run scenario app on x86 Android emulator.
Fixes: Bug where upload_folder didn't pass label to upload_folder_and_files.
This reverts commit fd108b1fa457b103f78703da16a6fac943317d4d.
Run: https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/egarciad_google.com/8737fd16b4809a41c3c006b2180e7289c9ee462d24342b6d3bb0ba2e922b5df8/+/annotations?server=chromium-swarm.appspot.com
Bug: https://github.com/flutter/flutter/issues/64041
Change-Id: I143fe1d95d0535aa945524e01e3d7f00d8afd31a
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/5861
Commit-Queue: Emmanuel Garcia <egarciad@google.com>
Reviewed-by: Godofredo Contreras <godofredoc@google.com>
diff --git a/recipe_modules/bucket_util/__init__.py b/recipe_modules/bucket_util/__init__.py
new file mode 100644
index 0000000..fde87ee
--- /dev/null
+++ b/recipe_modules/bucket_util/__init__.py
@@ -0,0 +1,12 @@
+DEPS = [
+ 'depot_tools/depot_tools',
+ 'depot_tools/gsutil',
+ 'flutter/os_utils',
+ 'flutter/zip',
+ 'recipe_engine/buildbucket',
+ 'recipe_engine/file',
+ 'recipe_engine/path',
+ 'recipe_engine/properties',
+ 'recipe_engine/runtime',
+ 'recipe_engine/step',
+]
diff --git a/recipe_modules/bucket_util/api.py b/recipe_modules/bucket_util/api.py
new file mode 100644
index 0000000..916dfea
--- /dev/null
+++ b/recipe_modules/bucket_util/api.py
@@ -0,0 +1,153 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+from recipe_engine import recipe_api
+
+INFRA_BUCKET_NAME = 'flutter_infra'
+
+class BucketUtilApi(recipe_api.RecipeApi):
+ """Utility functions to upload files to cloud buckets.
+
+ Properties:
+ upload_packages: (bool) Whether to upload the packages to the bucket.
+ force_upload:
+ (bool) Whether a file should be re-uploaded if it exists in the bucket.
+ """
+
+ def should_upload_packages(self):
+ return self.m.properties.get('upload_packages', False)
+
+ def upload_folder(self,
+ dir_label,
+ parent_directory,
+ folder_name,
+ zip_name,
+ platform=None):
+ """Uploads a folder to the cloud bucket
+
+ Args:
+ dir_label: (str) A label to append to the step that creates a temporary directory.
+ parent_directory: (str) Parent directory of folder_name.
+ folder_name: (str) Folder to upload.
+ zip_name: (str) Name of the zip file in the cloud bucket.
+ platform: (str) Directory name to add the zip file to.
+ """
+ self.upload_folder_and_files(dir_label,
+ parent_directory,
+ folder_name,
+ zip_name,
+ platform=platform)
+
+ def upload_folder_and_files(self,
+ dir_label,
+ parent_directory,
+ folder_name,
+ zip_name,
+ platform=None,
+ file_paths=None):
+ """Uploads a folder and or files to the cloud bucket
+
+ Args:
+ dir_label: (str) A label to append to the step that creates a temporary directory.
+ parent_directory: (str) Parent directory of folder_name and/or file_paths.
+ folder_name: (str) Folder to upload.
+ zip_name: (str) Name of the zip file in the cloud bucket.
+ platform: (str) directory name to add the zip file to.
+ file_paths: (list) A list of string with the filenames to upload.
+ """
+ with self.m.os_utils.make_temp_directory(dir_label) as temp_dir:
+ remote_name = '%s/%s' % (platform, zip_name) if platform else zip_name
+ local_zip = temp_dir.join(zip_name)
+ remote_zip = self.get_cloud_path(remote_name)
+ parent_directory = self.m.path['cache'].join('builder', parent_directory)
+ pkg = self.m.zip.make_package(parent_directory, local_zip)
+ pkg.add_directory(parent_directory.join(folder_name))
+
+ if file_paths is not None:
+ self.add_files(pkg, file_paths)
+
+ pkg.zip('Zip %s' % folder_name)
+ if self.should_upload_packages():
+ self.safe_upload(local_zip, remote_zip)
+
+ def safe_upload(self,
+ local_path,
+ remote_path,
+ bucket_name=INFRA_BUCKET_NAME,
+ args=[],
+ skip_on_duplicate=False):
+ """Upload a file if it doesn't already exist, fail job otherwise.
+
+ The check can be overridden with the `force_upload` property.
+
+ Args:
+ local_path: (str) The local path to upload.
+ remote_path: (str) The remove path in the cloud bucket.
+ bucket_name: (str) The bucket name. Defaults to flutter_infra.
+ args: (list) Arguments to pass to gsutil.upload step.
+ skip_on_duplicate: (bool)
+ Whether to avoid uploading to an already existing path in the bucket.
+
+ Returns:
+ The result of the gsutil.upload step. Useful for verifying the exit code.
+ """
+ assert (self.should_upload_packages())
+
+ experimental = self.m.runtime.is_experimental
+ force_upload = self.m.properties.get('force_upload', False)
+ # Experimental builds go to a different bucket, duplicates allowed
+ if not experimental and not force_upload:
+ cloud_path = 'gs://%s/%s' % (bucket_name, remote_path)
+ result = self.m.step(
+ 'Ensure %s does not already exist on cloud storage' % remote_path, [
+ 'python',
+ self.m.depot_tools.gsutil_py_path,
+ 'stat',
+ cloud_path,
+ ],
+ ok_ret='all')
+ # A return value of 0 means the file ALREADY exists on cloud storage
+ if result.exc_result.retcode == 0:
+ if skip_on_duplicate:
+ # This file already exists, but we shouldn't fail the build
+ return
+ raise AssertionError('%s already exists on cloud storage' % cloud_path)
+
+ return self.m.gsutil.upload(
+ local_path,
+ bucket_name,
+ remote_path,
+ args=args,
+ name='upload "%s"' % remote_path)
+
+ def add_files(self, pkg, relative_paths):
+ """Adds files to the package.
+
+ Args:
+ pkg: (package) The package that contains the files.
+ relative_paths:
+ (list) The relative_paths parameter is a list of strings and pairs of
+ strings. If the path is a string, then it will be used as the source
+ filename, and its basename will be used as the destination filename
+ in the archive. If the path is a pair, then the first element will be
+ used as the source filename, and the second element will be used as the
+ destination filename in the archive.
+ """
+ for path in relative_paths:
+ pkg.add_file(pkg.root.join(path),
+ archive_name=self.m.path.basename(path))
+
+ def get_cloud_path(self, path):
+ """Gets the path in the cloud bucket.
+
+ Args:
+ path: (str) Path to append after the commit hash.
+
+ Returns:
+ The path formed by `flutter/<commit-hash>/<path>`.
+ """
+ git_hash = self.m.buildbucket.gitiles_commit.id
+ if self.m.runtime.is_experimental:
+ return 'flutter/experimental/%s/%s' % (git_hash, path)
+ return 'flutter/%s/%s' % (git_hash, path)
diff --git a/recipe_modules/bucket_util/examples/full.expected/basic.json b/recipe_modules/bucket_util/examples/full.expected/basic.json
new file mode 100644
index 0000000..f00101e
--- /dev/null
+++ b/recipe_modules/bucket_util/examples/full.expected/basic.json
@@ -0,0 +1,71 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "name": "Zip build",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/build\", \"type\": \"dir\"}], \"output\": \"[CLEANUP]/tmp_tmp_1/test1.zip\", \"root\": \"[CACHE]/builder/src\"}"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_1"
+ ],
+ "infra_step": true,
+ "name": "temp dir for Upload test.zip"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "name": "Zip build (2)",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/build\", \"type\": \"dir\"}, {\"archive_name\": \"a.txt\", \"path\": \"[CACHE]/builder/src/a.txt\", \"type\": \"file\"}], \"output\": \"[CLEANUP]/tmp_tmp_2/test2.zip\", \"root\": \"[CACHE]/builder/src\"}"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "infra_step": true,
+ "name": "temp dir for Upload test.zip (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "name": "Zip build (3)",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/build\", \"type\": \"dir\"}, {\"archive_name\": \"a.txt\", \"path\": \"[CACHE]/builder/src/a.txt\", \"type\": \"file\"}], \"output\": \"[CLEANUP]/tmp_tmp_3/test3.zip\", \"root\": \"[CACHE]/builder/src\"}"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_3"
+ ],
+ "infra_step": true,
+ "name": "temp dir for Upload test.zip (3)"
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/bucket_util/examples/full.expected/upload_packages.json b/recipe_modules/bucket_util/examples/full.expected/upload_packages.json
new file mode 100644
index 0000000..0a586c6
--- /dev/null
+++ b/recipe_modules/bucket_util/examples/full.expected/upload_packages.json
@@ -0,0 +1,161 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "name": "Zip build",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/build\", \"type\": \"dir\"}], \"output\": \"[CLEANUP]/tmp_tmp_1/test1.zip\", \"root\": \"[CACHE]/builder/src\"}"
+ },
+ {
+ "cmd": [
+ "python",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "stat",
+ "gs://flutter_infra/flutter//test1.zip"
+ ],
+ "name": "Ensure flutter//test1.zip does not already exist on cloud storage"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "----",
+ "cp",
+ "[CLEANUP]/tmp_tmp_1/test1.zip",
+ "gs://flutter_infra/flutter//test1.zip"
+ ],
+ "infra_step": true,
+ "name": "gsutil upload \"flutter//test1.zip\"",
+ "~followup_annotations": [
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra/flutter//test1.zip@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_1"
+ ],
+ "infra_step": true,
+ "name": "temp dir for Upload test.zip"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "name": "Zip build (2)",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/build\", \"type\": \"dir\"}, {\"archive_name\": \"a.txt\", \"path\": \"[CACHE]/builder/src/a.txt\", \"type\": \"file\"}], \"output\": \"[CLEANUP]/tmp_tmp_2/test2.zip\", \"root\": \"[CACHE]/builder/src\"}"
+ },
+ {
+ "cmd": [
+ "python",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "stat",
+ "gs://flutter_infra/flutter//test2.zip"
+ ],
+ "name": "Ensure flutter//test2.zip does not already exist on cloud storage"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "----",
+ "cp",
+ "[CLEANUP]/tmp_tmp_2/test2.zip",
+ "gs://flutter_infra/flutter//test2.zip"
+ ],
+ "infra_step": true,
+ "name": "gsutil upload \"flutter//test2.zip\"",
+ "~followup_annotations": [
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra/flutter//test2.zip@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "infra_step": true,
+ "name": "temp dir for Upload test.zip (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "name": "Zip build (3)",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/build\", \"type\": \"dir\"}, {\"archive_name\": \"a.txt\", \"path\": \"[CACHE]/builder/src/a.txt\", \"type\": \"file\"}], \"output\": \"[CLEANUP]/tmp_tmp_3/test3.zip\", \"root\": \"[CACHE]/builder/src\"}"
+ },
+ {
+ "cmd": [
+ "python",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "stat",
+ "gs://flutter_infra/flutter//parent_directory/test3.zip"
+ ],
+ "name": "Ensure flutter//parent_directory/test3.zip does not already exist on cloud storage"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "----",
+ "cp",
+ "[CLEANUP]/tmp_tmp_3/test3.zip",
+ "gs://flutter_infra/flutter//parent_directory/test3.zip"
+ ],
+ "infra_step": true,
+ "name": "gsutil upload \"flutter//parent_directory/test3.zip\"",
+ "~followup_annotations": [
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra/flutter//parent_directory/test3.zip@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_3"
+ ],
+ "infra_step": true,
+ "name": "temp dir for Upload test.zip (3)"
+ },
+ {
+ "cmd": [
+ "python",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "stat",
+ "gs://flutter_infra/bar"
+ ],
+ "name": "Ensure bar does not already exist on cloud storage"
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/bucket_util/examples/full.expected/upload_packages_experimental_runtime.json b/recipe_modules/bucket_util/examples/full.expected/upload_packages_experimental_runtime.json
new file mode 100644
index 0000000..9826d62
--- /dev/null
+++ b/recipe_modules/bucket_util/examples/full.expected/upload_packages_experimental_runtime.json
@@ -0,0 +1,143 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "name": "Zip build",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/build\", \"type\": \"dir\"}], \"output\": \"[CLEANUP]/tmp_tmp_1/test1.zip\", \"root\": \"[CACHE]/builder/src\"}"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "----",
+ "cp",
+ "[CLEANUP]/tmp_tmp_1/test1.zip",
+ "gs://flutter_infra/flutter/experimental//test1.zip"
+ ],
+ "infra_step": true,
+ "name": "gsutil upload \"flutter/experimental//test1.zip\"",
+ "~followup_annotations": [
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra/flutter/experimental//test1.zip@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_1"
+ ],
+ "infra_step": true,
+ "name": "temp dir for Upload test.zip"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "name": "Zip build (2)",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/build\", \"type\": \"dir\"}, {\"archive_name\": \"a.txt\", \"path\": \"[CACHE]/builder/src/a.txt\", \"type\": \"file\"}], \"output\": \"[CLEANUP]/tmp_tmp_2/test2.zip\", \"root\": \"[CACHE]/builder/src\"}"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "----",
+ "cp",
+ "[CLEANUP]/tmp_tmp_2/test2.zip",
+ "gs://flutter_infra/flutter/experimental//test2.zip"
+ ],
+ "infra_step": true,
+ "name": "gsutil upload \"flutter/experimental//test2.zip\"",
+ "~followup_annotations": [
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra/flutter/experimental//test2.zip@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_2"
+ ],
+ "infra_step": true,
+ "name": "temp dir for Upload test.zip (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "name": "Zip build (3)",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/build\", \"type\": \"dir\"}, {\"archive_name\": \"a.txt\", \"path\": \"[CACHE]/builder/src/a.txt\", \"type\": \"file\"}], \"output\": \"[CLEANUP]/tmp_tmp_3/test3.zip\", \"root\": \"[CACHE]/builder/src\"}"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "----",
+ "cp",
+ "[CLEANUP]/tmp_tmp_3/test3.zip",
+ "gs://flutter_infra/flutter/experimental//parent_directory/test3.zip"
+ ],
+ "infra_step": true,
+ "name": "gsutil upload \"flutter/experimental//parent_directory/test3.zip\"",
+ "~followup_annotations": [
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra/flutter/experimental//parent_directory/test3.zip@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_3"
+ ],
+ "infra_step": true,
+ "name": "temp dir for Upload test.zip (3)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "----",
+ "cp",
+ "foo",
+ "gs://flutter_infra/bar"
+ ],
+ "infra_step": true,
+ "name": "gsutil upload \"bar\"",
+ "~followup_annotations": [
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra/bar@@@"
+ ]
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/bucket_util/examples/full.expected/upload_packages_tiggers_exception_and_package_exists.json b/recipe_modules/bucket_util/examples/full.expected/upload_packages_tiggers_exception_and_package_exists.json
new file mode 100644
index 0000000..4dcb31a
--- /dev/null
+++ b/recipe_modules/bucket_util/examples/full.expected/upload_packages_tiggers_exception_and_package_exists.json
@@ -0,0 +1,72 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "name": "Zip build",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/build\", \"type\": \"dir\"}], \"output\": \"[CLEANUP]/tmp_tmp_1/test1.zip\", \"root\": \"[CACHE]/builder/src\"}"
+ },
+ {
+ "cmd": [
+ "python",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "stat",
+ "gs://flutter_infra/flutter//test1.zip"
+ ],
+ "name": "Ensure flutter//test1.zip does not already exist on cloud storage"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_1"
+ ],
+ "infra_step": true,
+ "name": "temp dir for Upload test.zip"
+ },
+ {
+ "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[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps",
+ " raw_result = recipe_obj.run_steps(api, engine)",
+ " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps",
+ " properties_def, api=api)",
+ " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in invoke_with_properties",
+ " arg_names, **additional_args)",
+ " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties",
+ " return callable_obj(*props, **additional_args)",
+ " File \"RECIPE_REPO[flutter]/recipe_modules/bucket_util/examples/full.py\", line 17, in RunSteps",
+ " 'test1.zip') # zip_name",
+ " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner",
+ " return func(*a, **kw)",
+ " File \"RECIPE_REPO[flutter]/recipe_modules/bucket_util/api.py\", line 40, in upload_folder",
+ " platform=platform)",
+ " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner",
+ " return func(*a, **kw)",
+ " File \"RECIPE_REPO[flutter]/recipe_modules/bucket_util/api.py\", line 72, in upload_folder_and_files",
+ " self.safe_upload(local_zip, remote_zip)",
+ " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner",
+ " return func(*a, **kw)",
+ " File \"RECIPE_REPO[flutter]/recipe_modules/bucket_util/api.py\", line 115, in safe_upload",
+ " raise AssertionError('%s already exists on cloud storage' % cloud_path)",
+ "AssertionError: gs://flutter_infra/flutter//test1.zip already exists on cloud storage"
+ ]
+ },
+ {
+ "failure": {
+ "humanReason": "Uncaught Exception: AssertionError(u'gs://flutter_infra/flutter//test1.zip already exists on cloud storage',)"
+ },
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipe_modules/bucket_util/examples/full.py b/recipe_modules/bucket_util/examples/full.py
new file mode 100644
index 0000000..0e3d6f5
--- /dev/null
+++ b/recipe_modules/bucket_util/examples/full.py
@@ -0,0 +1,79 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+DEPS = [
+ 'bucket_util',
+ 'recipe_engine/properties',
+ 'recipe_engine/runtime',
+]
+
+
+def RunSteps(api):
+ api.bucket_util.upload_folder(
+ 'Upload test.zip', # dir_label
+ 'src', # parent_directory
+ 'build', # folder_name
+ 'test1.zip') # zip_name
+
+ api.bucket_util.upload_folder_and_files(
+ 'Upload test.zip', # dir_label
+ 'src', # parent_directory
+ 'build', # folder_name
+ 'test2.zip', # zip_name
+ file_paths=['a.txt'])
+
+ api.bucket_util.upload_folder_and_files(
+ 'Upload test.zip', # dir_label
+ 'src', # parent_directory
+ 'build', # folder_name
+ 'test3.zip', # zip_name
+ platform='parent_directory',
+ file_paths=['a.txt'])
+
+ if api.bucket_util.should_upload_packages():
+ api.bucket_util.safe_upload(
+ "foo", # local_path
+ "bar", # remote_path
+ skip_on_duplicate=True)
+
+
+def GenTests(api):
+ yield api.test(
+ 'basic',
+ api.properties(
+ upload_packages=False,
+ ),
+ )
+ yield api.test(
+ 'upload_packages',
+ api.properties(
+ upload_packages=True,
+ ),
+ api.step_data(
+ 'Ensure flutter//test1.zip does not already exist on cloud storage',
+ retcode=1,
+ ),
+ api.step_data(
+ 'Ensure flutter//test2.zip does not already exist on cloud storage',
+ retcode=1,
+ ),
+ api.step_data(
+ 'Ensure flutter//parent_directory/test3.zip does not already exist on cloud storage',
+ retcode=1,
+ ),
+ )
+ yield api.test(
+ 'upload_packages_tiggers_exception_and_package_exists',
+ api.properties(
+ upload_packages=True,
+ ),
+ api.expect_exception('AssertionError'),
+ )
+ yield api.test(
+ 'upload_packages_experimental_runtime',
+ api.runtime(is_luci=True, is_experimental=True),
+ api.properties(
+ upload_packages=True,
+ ),
+ )
diff --git a/recipe_modules/os_utils/__init__.py b/recipe_modules/os_utils/__init__.py
index e305673..ce44fc9 100644
--- a/recipe_modules/os_utils/__init__.py
+++ b/recipe_modules/os_utils/__init__.py
@@ -1,4 +1,6 @@
DEPS = [
+ 'recipe_engine/file',
+ 'recipe_engine/path',
'recipe_engine/platform',
'recipe_engine/step',
]
diff --git a/recipe_modules/os_utils/api.py b/recipe_modules/os_utils/api.py
index 31e7d57..feb42c4 100644
--- a/recipe_modules/os_utils/api.py
+++ b/recipe_modules/os_utils/api.py
@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+from contextlib import contextmanager
from recipe_engine import recipe_api
from PB.go.chromium.org.luci.buildbucket.proto import common as common_pb2
@@ -40,3 +41,17 @@
# Ensure we always pass this step as killing non existing processes
# may create errors.
presentation.status = 'SUCCESS'
+
+ @contextmanager
+ def make_temp_directory(self, label):
+ """Makes a temporary directory that is automatically deleted.
+
+ Args:
+ label:
+ (str) Part of the step name that removes the directory after is used.
+ """
+ temp_dir = self.m.path.mkdtemp('tmp')
+ try:
+ yield temp_dir
+ finally:
+ self.m.file.rmtree('temp dir for %s' % label, temp_dir)
diff --git a/recipe_modules/os_utils/examples/full.expected/basic.json b/recipe_modules/os_utils/examples/full.expected/basic.json
index 39922b4..c0d59f3 100644
--- a/recipe_modules/os_utils/examples/full.expected/basic.json
+++ b/recipe_modules/os_utils/examples/full.expected/basic.json
@@ -56,6 +56,19 @@
]
},
{
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]\\tmp_tmp_1"
+ ],
+ "infra_step": true,
+ "name": "temp dir for Create temp directory"
+ },
+ {
"name": "$result"
}
]
\ No newline at end of file
diff --git a/recipe_modules/os_utils/examples/full.expected/with_failures.json b/recipe_modules/os_utils/examples/full.expected/with_failures.json
index 39922b4..c0d59f3 100644
--- a/recipe_modules/os_utils/examples/full.expected/with_failures.json
+++ b/recipe_modules/os_utils/examples/full.expected/with_failures.json
@@ -56,6 +56,19 @@
]
},
{
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]\\tmp_tmp_1"
+ ],
+ "infra_step": true,
+ "name": "temp dir for Create temp directory"
+ },
+ {
"name": "$result"
}
]
\ No newline at end of file
diff --git a/recipe_modules/os_utils/examples/full.py b/recipe_modules/os_utils/examples/full.py
index 103884b..f50f00e 100644
--- a/recipe_modules/os_utils/examples/full.py
+++ b/recipe_modules/os_utils/examples/full.py
@@ -14,6 +14,9 @@
def RunSteps(api):
api.os_utils.kill_win_processes()
+ with api.os_utils.make_temp_directory('Create temp directory') as temp_dir:
+ file = temp_dir.join('artifacts.zip')
+
def GenTests(api):
yield api.test(
diff --git a/recipes/engine.expected/safeupload_raise_on_duplicate.json b/recipes/engine.expected/safeupload_raise_on_duplicate.json
index 9ba9031..3b120b4 100644
--- a/recipes/engine.expected/safeupload_raise_on_duplicate.json
+++ b/recipes/engine.expected/safeupload_raise_on_duplicate.json
@@ -2227,13 +2227,15 @@
" raw_result = recipe_obj.run_steps(api, engine)",
" File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps",
" recipe_result = self.global_symbols['RunSteps'](*args)",
- " File \"RECIPE_REPO[flutter]/recipes/engine.py\", line 1552, in RunSteps",
+ " File \"RECIPE_REPO[flutter]/recipes/engine.py\", line 1454, in RunSteps",
" BuildLinux(api)",
- " File \"RECIPE_REPO[flutter]/recipes/engine.py\", line 704, in BuildLinux",
+ " File \"RECIPE_REPO[flutter]/recipes/engine.py\", line 602, in BuildLinux",
" 'out/host_debug_unopt/gen/frontend_server.dart.snapshot',",
- " File \"RECIPE_REPO[flutter]/recipes/engine.py\", line 277, in UploadArtifacts",
- " SafeUpload(api, local_zip, remote_zip)",
- " File \"RECIPE_REPO[flutter]/recipes/engine.py\", line 94, in SafeUpload",
+ " File \"RECIPE_REPO[flutter]/recipes/engine.py\", line 222, in UploadArtifacts",
+ " api.bucket_util.safe_upload(local_zip, remote_zip)",
+ " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner",
+ " return func(*a, **kw)",
+ " File \"RECIPE_REPO[flutter]/recipe_modules/bucket_util/api.py\", line 115, in safe_upload",
" raise AssertionError('%s already exists on cloud storage' % cloud_path)",
"AssertionError: gs://flutter_infra/flutter//linux-x64/artifacts.zip already exists on cloud storage"
]
diff --git a/recipes/engine.py b/recipes/engine.py
index 86656f9..cdfd67e 100644
--- a/recipes/engine.py
+++ b/recipes/engine.py
@@ -3,7 +3,6 @@
# found in the LICENSE file.
from contextlib import contextmanager
-import contextlib
from PB.recipes.flutter.engine import InputProperties
from PB.recipes.flutter.engine import EnvProperties
@@ -19,6 +18,8 @@
'depot_tools/git',
'depot_tools/gsutil',
'depot_tools/osx_sdk',
+ 'flutter/bucket_util',
+ 'flutter/os_utils',
'flutter/repo_util',
'flutter/zip',
'fuchsia/display_util',
@@ -60,51 +61,6 @@
return api.path['cache'].join('builder', 'src')
-# TODO(fujino): make this a shared function in a utility module.
-def SafeUpload(api,
- local_path,
- remote_path,
- bucket_name=BUCKET_NAME,
- args=[],
- skip_on_duplicate=False):
- """Upload a file if it doesn't already exist, fail job otherwise.
-
- The check can be overridden with the `force_upload` property.
- """
- assert (ShouldUploadPackages(api))
-
- experimental = api.runtime.is_experimental
- force_upload = api.properties.get('force_upload', False)
- # Experimental builds go to a different bucket, duplicates allowed
- if not experimental and not force_upload:
- cloud_path = 'gs://%s/%s' % (bucket_name, remote_path)
- result = api.step(
- 'Ensure %s does not already exist on cloud storage' % remote_path, [
- 'python',
- api.depot_tools.gsutil_py_path,
- 'stat',
- cloud_path,
- ],
- ok_ret='all')
- # A return value of 0 means the file ALREADY exists on cloud storage
- if result.exc_result.retcode == 0:
- if skip_on_duplicate:
- # This file already exists, but we shouldn't fail the build
- return
- raise AssertionError('%s already exists on cloud storage' % cloud_path)
-
- return api.gsutil.upload(
- local_path,
- bucket_name,
- remote_path,
- args=args,
- name='upload "%s"' % remote_path)
-
-
-def ShouldUploadPackages(api):
- return api.properties.get('upload_packages', False)
-
-
def GetCloudPath(api, path):
git_hash = api.buildbucket.gitiles_commit.id
if api.runtime.is_experimental:
@@ -252,29 +208,18 @@
api.step('gn %s' % ' '.join(args), gn_cmd)
-# The relative_paths parameter is a list of strings and pairs of strings.
-# If the path is a string, then it will be used as the source filename,
-# and its basename will be used as the destination filename in the archive.
-# If the path is a pair, then the first element will be used as the source
-# filename, and the second element will be used as the destination filename
-# in the archive.
-def AddFiles(api, pkg, relative_paths):
- for path in relative_paths:
- pkg.add_file(pkg.root.join(path), archive_name=api.path.basename(path))
-
-
def UploadArtifacts(api, platform, file_paths, archive_name='artifacts.zip'):
dir_label = '%s UploadArtifacts %s' % (platform, archive_name)
- with MakeTempDir(api, dir_label) as temp_dir:
+ with api.os_utils.make_temp_directory(dir_label) as temp_dir:
local_zip = temp_dir.join('artifacts.zip')
remote_name = '%s/%s' % (platform, archive_name)
remote_zip = GetCloudPath(api, remote_name)
pkg = api.zip.make_package(GetCheckoutPath(api), local_zip)
- AddFiles(api, pkg, file_paths)
+ api.bucket_util.add_files( pkg, file_paths)
pkg.zip('Zip %s %s' % (platform, archive_name))
- if ShouldUploadPackages(api):
- SafeUpload(api, local_zip, remote_zip)
+ if api.bucket_util.should_upload_packages():
+ api.bucket_util.safe_upload(local_zip, remote_zip)
# Takes an artifact filename such as `flutter_embedding_release.jar`
@@ -307,7 +252,7 @@
def UploadMavenArtifacts(api, artifacts, swarming_task_id):
if api.properties.get('no_maven', False):
return
- if not ShouldUploadPackages(api):
+ if not api.bucket_util.should_upload_packages():
return
checkout = GetCheckoutPath(api)
@@ -315,54 +260,17 @@
filename = api.path.basename(local_artifact)
remote_artifact = GetCloudMavenPath(api, filename, swarming_task_id)
- SafeUpload(
- api,
- checkout.join(local_artifact),
- remote_artifact,
- bucket_name=MAVEN_BUCKET_NAME)
-
-
-def UploadFolder(api,
- dir_label,
- parent_dir,
- folder_name,
- zip_name,
- platform=None):
- UploadFolderAndFiles(api, dir_label, parent_dir, folder_name, None, zip_name,
- platform)
-
-
-def UploadFolderAndFiles(api,
- dir_label,
- parent_dir,
- folder_name,
- file_paths,
- zip_name,
- platform=None):
- with MakeTempDir(api, dir_label) as temp_dir:
- local_zip = temp_dir.join(zip_name)
- if platform is None:
- remote_name = zip_name
- else:
- remote_name = '%s/%s' % (platform, zip_name)
- remote_zip = GetCloudPath(api, remote_name)
- parent_dir = api.path['cache'].join('builder', parent_dir)
- pkg = api.zip.make_package(parent_dir, local_zip)
- pkg.add_directory(parent_dir.join(folder_name))
- if file_paths is not None:
- AddFiles(api, pkg, file_paths)
- pkg.zip('Zip %s' % folder_name)
- if ShouldUploadPackages(api):
- SafeUpload(api, local_zip, remote_zip)
+ api.bucket_util.safe_upload(checkout.join(local_artifact),
+ remote_artifact,
+ bucket_name=MAVEN_BUCKET_NAME)
def UploadDartPackage(api, package_name):
- UploadFolder(
- api,
- 'UploadDartPackage %s' % package_name, # dir_label
- 'src/out/android_debug/dist/packages', # parent_dir
- package_name, # folder_name
- "%s.zip" % package_name) # zip_name
+ api.bucket_util.upload_folder(
+ 'UploadDartPackage %s' % package_name,
+ 'src/out/android_debug/dist/packages',
+ package_name,
+ "%s.zip" % package_name)
def UploadSkyEngineToCIPD(api, package_name):
@@ -370,12 +278,12 @@
package_dir = 'src/out/android_debug/dist/packages'
parent_dir = api.path['cache'].join('builder', package_dir)
folder_path = parent_dir.join(package_name)
- with MakeTempDir(api, package_name) as temp_dir:
+ with api.os_utils.make_temp_directory(package_name) as temp_dir:
zip_path = temp_dir.join('%s.zip' % package_name)
cipd_package_name = 'flutter/%s' % package_name
api.cipd.build(
folder_path, zip_path, cipd_package_name, install_mode='copy')
- if ShouldUploadPackages(api):
+ if api.bucket_util.should_upload_packages():
api.cipd.register(
cipd_package_name,
zip_path,
@@ -389,12 +297,11 @@
def UploadFlutterPatchedSdk(api):
- UploadFolder(
- api,
- 'Upload Flutter patched sdk', # dir_label
- 'src/out/host_debug', # parent_dir
- 'flutter_patched_sdk', # folder_name
- 'flutter_patched_sdk.zip') # zip_name
+ api.bucket_util.upload_folder(
+ 'Upload Flutter patched sdk',
+ 'src/out/host_debug',
+ 'flutter_patched_sdk',
+ 'flutter_patched_sdk.zip')
host_release_path = GetCheckoutPath(api).join('out/host_release')
flutter_patched_sdk_product = host_release_path.join(
@@ -405,42 +312,29 @@
'Move release flutter_patched_sdk to flutter_patched_sdk_product',
host_release_path.join('flutter_patched_sdk'),
flutter_patched_sdk_product)
- UploadFolder(
- api,
- 'Upload Product Flutter patched sdk', # dir_label
- 'src/out/host_release', # parent_dir
- 'flutter_patched_sdk_product', # folder_name
- 'flutter_patched_sdk_product.zip') # zip_name
+ api.bucket_util.upload_folder(
+ 'Upload Product Flutter patched sdk',
+ 'src/out/host_release',
+ 'flutter_patched_sdk_product',
+ 'flutter_patched_sdk_product.zip')
def UploadDartSdk(api, archive_name):
- UploadFolder(
- api,
- 'Upload Dart SDK', # dir_label
- 'src/out/host_debug', # parent_dir
- 'dart-sdk', # folder_name
+ api.bucket_util.upload_folder(
+ 'Upload Dart SDK',
+ 'src/out/host_debug',
+ 'dart-sdk',
archive_name)
def UploadWebSdk(api, archive_name):
- UploadFolder(
- api,
- 'Upload Web SDK', # dir_label
- 'src/out/host_debug', # parent_dir
- 'flutter_web_sdk', # folder_name
+ api.bucket_util.upload_folder(
+ 'Upload Web SDK',
+ 'src/out/host_debug',
+ 'flutter_web_sdk',
archive_name)
-# TODO(eseidel): Would be nice to have this on api.path or api.file.
-@contextlib.contextmanager
-def MakeTempDir(api, label):
- temp_dir = api.path.mkdtemp('tmp')
- try:
- yield temp_dir
- finally:
- api.file.rmtree('temp dir for %s' % label, temp_dir)
-
-
def AnalyzeDartUI(api):
RunGN(api, '--unoptimized')
Build(api, 'host_debug_unopt', 'generate_dart_ui')
@@ -476,7 +370,7 @@
def UploadTreeMap(api, upload_dir, lib_flutter_path, android_triple):
- with MakeTempDir(api, 'treemap') as temp_dir:
+ with api.os_utils.make_temp_directory('treemap') as temp_dir:
checkout = GetCheckoutPath(api)
script_path = checkout.join(
'third_party/dart/runtime/'
@@ -495,7 +389,7 @@
api.python('generate treemap for %s' % upload_dir, script_path, args)
remote_name = GetCloudPath(api, upload_dir)
- if ShouldUploadPackages(api):
+ if api.bucket_util.should_upload_packages():
# TODO(fujino): create SafeUploadDirectory() wrapper
result = api.gsutil.upload(
destination_dir,
@@ -679,9 +573,13 @@
if bucket_name.endswith('profile') or bucket_name.endswith('release'):
artifacts.append('gen_snapshot')
# Headers for the library are in the flutter_linux folder.
- UploadFolderAndFiles(api, 'Upload linux-x64 Flutter GTK artifacts',
- 'src/out/%s' % label, 'flutter_linux', artifacts,
- 'linux-x64-flutter-gtk.zip', bucket_name)
+ api.bucket_util.upload_folder_and_files(
+ 'Upload linux-x64 Flutter GTK artifacts',
+ 'src/out/%s' % label,
+ 'flutter_linux',
+ 'linux-x64-flutter-gtk.zip',
+ platform=bucket_name,
+ file_paths=artifacts)
def BuildLinux(api):
@@ -760,7 +658,7 @@
engine/testing/fuchsia/test_fars), and a bash script (in
engine/testing/fuchsia/run_tests.sh) to drive the flutter_ctl.
"""
- with MakeTempDir(api, 'isolated') as isolated_dir:
+ with api.os_utils.make_temp_directory('isolated') as isolated_dir:
with api.step.nest('Copy files'):
api.file.copy('Copy test script', fuchsia_test_script, isolated_dir)
api.file.copy('Copy device-finder', fuchsia_tools.join('device-finder'),
@@ -878,8 +776,7 @@
exec_path = str(executable)
if 'dbg_success' not in exec_path:
remote_file_name = GetRemoteFileName(exec_path)
- SafeUpload(
- api,
+ api.bucket_util.safe_upload(
executable,
'%s/%s' % (FUCHSIA_ARTIFACTS_DEBUG_NAMESPACE, remote_file_name),
bucket_name=FUCHSIA_ARTIFACTS_BUCKET_NAME,
@@ -904,7 +801,7 @@
symbol_dir = checkout.join('out', base_dir, symbols_basename)
symbol_dirs.append(symbol_dir)
UploadFuchsiaDebugSymbolsToSymbolServer(api, arch, symbol_dirs)
- with MakeTempDir(api, 'FuchsiaDebugSymbols') as temp_dir:
+ with api.os_utils.make_temp_directory('FuchsiaDebugSymbols') as temp_dir:
debug_symbols_cmd = [
'python', dbg_symbols_script, '--engine-version', git_rev, '--upload',
'--target-arch', arch, '--out-dir', temp_dir, '--symbol-dirs'
@@ -979,7 +876,8 @@
builds[build_id].output.properties['isolated_output_hash'],
GetCheckoutPath(api))
- if ShouldUploadPackages(api) and not api.runtime.is_experimental:
+ if (api.bucket_util.should_upload_packages()
+ and not api.runtime.is_experimental):
fuchsia_package_cmd = [
'python',
build_script,
@@ -995,7 +893,7 @@
stamp_file = api.path['cleanup'].join('fuchsia_stamp')
api.file.write_text('fuchsia.stamp', stamp_file, '')
remote_file = GetCloudPath(api, 'fuchsia/fuchsia.stamp')
- SafeUpload(api, stamp_file, remote_file)
+ api.bucket_util.safe_upload(stamp_file, remote_file)
def TestObservatory(api):
@@ -1240,8 +1138,8 @@
pkg.zip('Zip Flutter.dSYM')
remote_name = '%s/Flutter.dSYM.zip' % bucket_name
remote_zip = GetCloudPath(api, remote_name)
- if ShouldUploadPackages(api):
- SafeUpload(api, dsym_zip, remote_zip)
+ if api.bucket_util.should_upload_packages():
+ api.bucket_util.safe_upload(dsym_zip, remote_zip)
def RunIosIntegrationTests(api):
@@ -1357,9 +1255,12 @@
PackageWindowsDesktopVariant(api, 'host_debug', 'windows-x64-debug')
PackageWindowsDesktopVariant(api, 'host_profile', 'windows-x64-profile')
PackageWindowsDesktopVariant(api, 'host_release', 'windows-x64-release')
- UploadFolder(api, 'Upload windows-x64 Flutter library C++ wrapper',
- 'src/out/host_debug', 'cpp_client_wrapper',
- 'flutter-cpp-client-wrapper.zip', 'windows-x64')
+ api.bucket_util.upload_folder(
+ 'Upload windows-x64 Flutter library C++ wrapper',
+ 'src/out/host_debug',
+ 'cpp_client_wrapper',
+ 'flutter-cpp-client-wrapper.zip',
+ platform='windows-x64')
# Legacy; remove once Flutter tooling is updated to use the -debug location.
PackageWindowsDesktopVariant(api, 'host_debug', 'windows-x64')
@@ -1426,7 +1327,7 @@
def BuildJavadoc(api):
checkout = GetCheckoutPath(api)
- with MakeTempDir(api, 'BuildJavadoc') as temp_dir:
+ with api.os_utils.make_temp_directory('BuildJavadoc') as temp_dir:
javadoc_cmd = [
checkout.join('flutter/tools/gen_javadoc.py'), '--out-dir', temp_dir
]
@@ -1434,9 +1335,10 @@
api.step('build javadoc', javadoc_cmd)
api.zip.directory('archive javadoc', temp_dir,
checkout.join('out/android_javadoc.zip'))
- if ShouldUploadPackages(api):
- SafeUpload(api, checkout.join('out/android_javadoc.zip'),
- GetCloudPath(api, 'android-javadoc.zip'))
+ if api.bucket_util.should_upload_packages():
+ api.bucket_util.safe_upload(
+ checkout.join('out/android_javadoc.zip'),
+ GetCloudPath(api, 'android-javadoc.zip'))
# The MacOSX10.15 SDK included in Xcode 11 does not ship Ruby 2.3 headers,
@@ -1484,16 +1386,16 @@
def BuildObjcDoc(api):
"""Builds documentation for the Objective-C variant of engine."""
checkout = GetCheckoutPath(api)
- with MakeTempDir(api, 'BuildObjcDoc') as temp_dir:
+ with api.os_utils.make_temp_directory('BuildObjcDoc') as temp_dir:
objcdoc_cmd = [checkout.join('flutter/tools/gen_objcdoc.sh'), temp_dir]
with api.context(cwd=checkout.join('flutter')):
api.step('build obj-c doc', objcdoc_cmd)
api.zip.directory('archive obj-c doc', temp_dir,
checkout.join('out/ios-objcdoc.zip'))
- if ShouldUploadPackages(api):
- SafeUpload(api, checkout.join('out/ios-objcdoc.zip'),
- GetCloudPath(api, 'ios-objcdoc.zip'))
+ if api.bucket_util.should_upload_packages():
+ api.bucket_util.safe_upload(checkout.join('out/ios-objcdoc.zip'),
+ GetCloudPath(api, 'ios-objcdoc.zip'))
def RunSteps(api, properties, env_properties):
diff --git a/recipes/engine/scenarios.expected/with_failure_upload_0.json b/recipes/engine/scenarios.expected/with_failure_upload_0.json
new file mode 100644
index 0000000..5948835
--- /dev/null
+++ b/recipes/engine/scenarios.expected/with_failure_upload_0.json
@@ -0,0 +1,1286 @@
+[
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CACHE]/builder/src/out"
+ ],
+ "infra_step": true,
+ "name": "Clobber build output"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder"
+ ],
+ "infra_step": true,
+ "name": "Ensure checkout cache"
+ },
+ {
+ "cmd": [],
+ "name": "ensure goma"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/goma/client",
+ "-ensure-file",
+ "fuchsia/third_party/goma/client/${platform} release",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure goma.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-release---------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/goma/client/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Checkout source code"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
+ "--spec-path",
+ "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'src/flutter', 'url': 'https://chromium.googlesource.com/external/github.com/flutter/engine'}]",
+ "--revision_mapping_file",
+ "{\"got_engine_revision\": \"src/flutter\"}",
+ "--git-cache-dir",
+ "[CACHE]/git",
+ "--cleanup-dir",
+ "[CLEANUP]/bot_update",
+ "--output_json",
+ "/path/to/tmp/json",
+ "--revision",
+ "src/flutter@abcd1234",
+ "--refs",
+ "refs/heads/master"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
+ "GIT_HTTP_LOW_SPEED_TIME": "300"
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0",
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "Checkout source code.bot_update",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_TEXT@Some step text@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision\": \"abcd1234\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision_cp\": \"refs/heads/master@{#84512}\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"source_manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"directories\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"git_checkout\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repo_url\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"version\": 0@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision@\"abcd1234\"@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/master@{#84512}\"@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_REPO[depot_tools]/gclient.py",
+ "runhooks"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Checkout source code.gclient runhooks",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Android SDK Licenses"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/src/third_party/android_tools/sdk/licenses"
+ ],
+ "infra_step": true,
+ "name": "Android SDK Licenses.mkdir licenses",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "android_sdk_hash",
+ "[CACHE]/builder/src/third_party/android_tools/sdk/licenses/android-sdk-license"
+ ],
+ "infra_step": true,
+ "name": "Android SDK Licenses.android sdk license",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@android-sdk-license@android_sdk_hash@@@",
+ "@@@STEP_LOG_END@android-sdk-license@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "",
+ "[CACHE]/builder/src/third_party/android_tools/sdk/licenses/android-sdk-preview-license"
+ ],
+ "infra_step": true,
+ "name": "Android SDK Licenses.android sdk preview license",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@android-sdk-preview-license@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--runtime-mode",
+ "debug",
+ "--unoptimized"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --runtime-mode debug --unoptimized"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SEND_EXPECTED_OUTPUTS": "True",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma.start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/host_debug_unopt"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build host_debug_unopt"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000003000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "post_goma.ensure bqupload",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd/bqupload",
+ "-ensure-file",
+ "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.ensure bqupload.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--android",
+ "--android-cpu=x86",
+ "--no-lto"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --android --android-cpu=x86 --no-lto"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SEND_EXPECTED_OUTPUTS": "True",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma (2).start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build android_debug_x86"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:24.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000006000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/src/tools/android",
+ "-ensure-file",
+ "chromium/tools/android/avd a1SpJpmu4ReL4-4fR02ZV4FjhWb4z3p88a408gvfFWcC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-a1SpJpmu4ReL4-4f\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Install Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Start Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "./build_and_run_android_tests.sh",
+ "android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Scenario App Integration Tests"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Zip build/reports/diff_failures",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/flutter/testing/scenario_app/build/reports/diff_failures\", \"type\": \"dir\"}], \"output\": \"[CLEANUP]/tmp_tmp_1/diff_failures.zip\", \"root\": \"[CACHE]/builder/src/flutter/testing/scenario_app\"}"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_1"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "temp dir for Upload diff failures"
+ },
+ {
+ "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[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps",
+ " raw_result = recipe_obj.run_steps(api, engine)",
+ " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps",
+ " recipe_result = self.global_symbols['RunSteps'](*args)",
+ " File \"RECIPE_REPO[flutter]/recipes/engine/scenarios.py\", line 142, in RunSteps",
+ " RunAndroidScenarioTests(api)",
+ " File \"RECIPE_REPO[flutter]/recipes/engine/scenarios.py\", line 100, in RunAndroidScenarioTests",
+ " raise AssertionError('Diff detected. Please verify the diff failures.')",
+ "AssertionError: Diff detected. Please verify the diff failures."
+ ]
+ },
+ {
+ "failure": {
+ "humanReason": "Uncaught Exception: AssertionError('Diff detected. Please verify the diff failures.',)"
+ },
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipes/engine/scenarios.expected/with_failure_upload_1.json b/recipes/engine/scenarios.expected/with_failure_upload_1.json
new file mode 100644
index 0000000..a87da6f
--- /dev/null
+++ b/recipes/engine/scenarios.expected/with_failure_upload_1.json
@@ -0,0 +1,1351 @@
+[
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CACHE]/builder/src/out"
+ ],
+ "infra_step": true,
+ "name": "Clobber build output"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder"
+ ],
+ "infra_step": true,
+ "name": "Ensure checkout cache"
+ },
+ {
+ "cmd": [],
+ "name": "ensure goma"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/goma/client",
+ "-ensure-file",
+ "fuchsia/third_party/goma/client/${platform} release",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure goma.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-release---------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/goma/client/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Checkout source code"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
+ "--spec-path",
+ "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'src/flutter', 'url': 'https://chromium.googlesource.com/external/github.com/flutter/engine'}]",
+ "--revision_mapping_file",
+ "{\"got_engine_revision\": \"src/flutter\"}",
+ "--git-cache-dir",
+ "[CACHE]/git",
+ "--cleanup-dir",
+ "[CLEANUP]/bot_update",
+ "--output_json",
+ "/path/to/tmp/json",
+ "--revision",
+ "src/flutter@abcd1234",
+ "--refs",
+ "refs/heads/master"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
+ "GIT_HTTP_LOW_SPEED_TIME": "300"
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0",
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "Checkout source code.bot_update",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_TEXT@Some step text@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision\": \"abcd1234\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision_cp\": \"refs/heads/master@{#84512}\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"source_manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"directories\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"git_checkout\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repo_url\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"version\": 0@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision@\"abcd1234\"@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/master@{#84512}\"@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_REPO[depot_tools]/gclient.py",
+ "runhooks"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Checkout source code.gclient runhooks",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Android SDK Licenses"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/src/third_party/android_tools/sdk/licenses"
+ ],
+ "infra_step": true,
+ "name": "Android SDK Licenses.mkdir licenses",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "android_sdk_hash",
+ "[CACHE]/builder/src/third_party/android_tools/sdk/licenses/android-sdk-license"
+ ],
+ "infra_step": true,
+ "name": "Android SDK Licenses.android sdk license",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@android-sdk-license@android_sdk_hash@@@",
+ "@@@STEP_LOG_END@android-sdk-license@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "",
+ "[CACHE]/builder/src/third_party/android_tools/sdk/licenses/android-sdk-preview-license"
+ ],
+ "infra_step": true,
+ "name": "Android SDK Licenses.android sdk preview license",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@android-sdk-preview-license@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--runtime-mode",
+ "debug",
+ "--unoptimized"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --runtime-mode debug --unoptimized"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SEND_EXPECTED_OUTPUTS": "True",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma.start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/host_debug_unopt"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build host_debug_unopt"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000003000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "post_goma.ensure bqupload",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd/bqupload",
+ "-ensure-file",
+ "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.ensure bqupload.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--android",
+ "--android-cpu=x86",
+ "--no-lto"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --android --android-cpu=x86 --no-lto"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SEND_EXPECTED_OUTPUTS": "True",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma (2).start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build android_debug_x86"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:24.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000006000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/src/tools/android",
+ "-ensure-file",
+ "chromium/tools/android/avd a1SpJpmu4ReL4-4fR02ZV4FjhWb4z3p88a408gvfFWcC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-a1SpJpmu4ReL4-4f\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Install Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Start Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "./build_and_run_android_tests.sh",
+ "android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Scenario App Integration Tests"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Zip build/reports/diff_failures",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/flutter/testing/scenario_app/build/reports/diff_failures\", \"type\": \"dir\"}], \"output\": \"[CLEANUP]/tmp_tmp_1/diff_failures.zip\", \"root\": \"[CACHE]/builder/src/flutter/testing/scenario_app\"}"
+ },
+ {
+ "cmd": [
+ "python",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "stat",
+ "gs://flutter_infra/flutter/abcd1234/diff_failures.zip"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Ensure flutter/abcd1234/diff_failures.zip does not already exist on cloud storage"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "----",
+ "cp",
+ "[CLEANUP]/tmp_tmp_1/diff_failures.zip",
+ "gs://flutter_infra/flutter/abcd1234/diff_failures.zip"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "gsutil upload \"flutter/abcd1234/diff_failures.zip\"",
+ "~followup_annotations": [
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra/flutter/abcd1234/diff_failures.zip@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_1"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "temp dir for Upload diff failures"
+ },
+ {
+ "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[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps",
+ " raw_result = recipe_obj.run_steps(api, engine)",
+ " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps",
+ " recipe_result = self.global_symbols['RunSteps'](*args)",
+ " File \"RECIPE_REPO[flutter]/recipes/engine/scenarios.py\", line 142, in RunSteps",
+ " RunAndroidScenarioTests(api)",
+ " File \"RECIPE_REPO[flutter]/recipes/engine/scenarios.py\", line 100, in RunAndroidScenarioTests",
+ " raise AssertionError('Diff detected. Please verify the diff failures.')",
+ "AssertionError: Diff detected. Please verify the diff failures."
+ ]
+ },
+ {
+ "failure": {
+ "humanReason": "Uncaught Exception: AssertionError('Diff detected. Please verify the diff failures.',)"
+ },
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipes/engine/scenarios.expected/without_failure_upload_0.json b/recipes/engine/scenarios.expected/without_failure_upload_0.json
new file mode 100644
index 0000000..39c7447
--- /dev/null
+++ b/recipes/engine/scenarios.expected/without_failure_upload_0.json
@@ -0,0 +1,1204 @@
+[
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CACHE]/builder/src/out"
+ ],
+ "infra_step": true,
+ "name": "Clobber build output"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder"
+ ],
+ "infra_step": true,
+ "name": "Ensure checkout cache"
+ },
+ {
+ "cmd": [],
+ "name": "ensure goma"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/goma/client",
+ "-ensure-file",
+ "fuchsia/third_party/goma/client/${platform} release",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure goma.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-release---------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/goma/client/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Checkout source code"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
+ "--spec-path",
+ "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'src/flutter', 'url': 'https://chromium.googlesource.com/external/github.com/flutter/engine'}]",
+ "--revision_mapping_file",
+ "{\"got_engine_revision\": \"src/flutter\"}",
+ "--git-cache-dir",
+ "[CACHE]/git",
+ "--cleanup-dir",
+ "[CLEANUP]/bot_update",
+ "--output_json",
+ "/path/to/tmp/json",
+ "--revision",
+ "src/flutter@abcd1234",
+ "--refs",
+ "refs/heads/master"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
+ "GIT_HTTP_LOW_SPEED_TIME": "300"
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0",
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "Checkout source code.bot_update",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_TEXT@Some step text@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision\": \"abcd1234\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision_cp\": \"refs/heads/master@{#84512}\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"source_manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"directories\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"git_checkout\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repo_url\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"version\": 0@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision@\"abcd1234\"@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/master@{#84512}\"@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_REPO[depot_tools]/gclient.py",
+ "runhooks"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Checkout source code.gclient runhooks",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Android SDK Licenses"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/src/third_party/android_tools/sdk/licenses"
+ ],
+ "infra_step": true,
+ "name": "Android SDK Licenses.mkdir licenses",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "android_sdk_hash",
+ "[CACHE]/builder/src/third_party/android_tools/sdk/licenses/android-sdk-license"
+ ],
+ "infra_step": true,
+ "name": "Android SDK Licenses.android sdk license",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@android-sdk-license@android_sdk_hash@@@",
+ "@@@STEP_LOG_END@android-sdk-license@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "",
+ "[CACHE]/builder/src/third_party/android_tools/sdk/licenses/android-sdk-preview-license"
+ ],
+ "infra_step": true,
+ "name": "Android SDK Licenses.android sdk preview license",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@android-sdk-preview-license@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--runtime-mode",
+ "debug",
+ "--unoptimized"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --runtime-mode debug --unoptimized"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SEND_EXPECTED_OUTPUTS": "True",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma.start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/host_debug_unopt"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build host_debug_unopt"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000003000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "post_goma.ensure bqupload",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd/bqupload",
+ "-ensure-file",
+ "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.ensure bqupload.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--android",
+ "--android-cpu=x86",
+ "--no-lto"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --android --android-cpu=x86 --no-lto"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SEND_EXPECTED_OUTPUTS": "True",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma (2).start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build android_debug_x86"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:24.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000006000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/src/tools/android",
+ "-ensure-file",
+ "chromium/tools/android/avd a1SpJpmu4ReL4-4fR02ZV4FjhWb4z3p88a408gvfFWcC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-a1SpJpmu4ReL4-4f\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Install Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Start Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "./build_and_run_android_tests.sh",
+ "android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Scenario App Integration Tests"
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipes/engine/scenarios.expected/without_failure_upload_1.json b/recipes/engine/scenarios.expected/without_failure_upload_1.json
new file mode 100644
index 0000000..39c7447
--- /dev/null
+++ b/recipes/engine/scenarios.expected/without_failure_upload_1.json
@@ -0,0 +1,1204 @@
+[
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CACHE]/builder/src/out"
+ ],
+ "infra_step": true,
+ "name": "Clobber build output"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder"
+ ],
+ "infra_step": true,
+ "name": "Ensure checkout cache"
+ },
+ {
+ "cmd": [],
+ "name": "ensure goma"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/goma/client",
+ "-ensure-file",
+ "fuchsia/third_party/goma/client/${platform} release",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure goma.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-release---------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/goma/client/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Checkout source code"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
+ "--spec-path",
+ "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'src/flutter', 'url': 'https://chromium.googlesource.com/external/github.com/flutter/engine'}]",
+ "--revision_mapping_file",
+ "{\"got_engine_revision\": \"src/flutter\"}",
+ "--git-cache-dir",
+ "[CACHE]/git",
+ "--cleanup-dir",
+ "[CLEANUP]/bot_update",
+ "--output_json",
+ "/path/to/tmp/json",
+ "--revision",
+ "src/flutter@abcd1234",
+ "--refs",
+ "refs/heads/master"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
+ "GIT_HTTP_LOW_SPEED_TIME": "300"
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0",
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "Checkout source code.bot_update",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_TEXT@Some step text@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision\": \"abcd1234\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision_cp\": \"refs/heads/master@{#84512}\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"source_manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"directories\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"git_checkout\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repo_url\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"version\": 0@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision@\"abcd1234\"@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/master@{#84512}\"@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_REPO[depot_tools]/gclient.py",
+ "runhooks"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Checkout source code.gclient runhooks",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Android SDK Licenses"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder/src/third_party/android_tools/sdk/licenses"
+ ],
+ "infra_step": true,
+ "name": "Android SDK Licenses.mkdir licenses",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "android_sdk_hash",
+ "[CACHE]/builder/src/third_party/android_tools/sdk/licenses/android-sdk-license"
+ ],
+ "infra_step": true,
+ "name": "Android SDK Licenses.android sdk license",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@android-sdk-license@android_sdk_hash@@@",
+ "@@@STEP_LOG_END@android-sdk-license@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "",
+ "[CACHE]/builder/src/third_party/android_tools/sdk/licenses/android-sdk-preview-license"
+ ],
+ "infra_step": true,
+ "name": "Android SDK Licenses.android sdk preview license",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_END@android-sdk-preview-license@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--runtime-mode",
+ "debug",
+ "--unoptimized"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --runtime-mode debug --unoptimized"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SEND_EXPECTED_OUTPUTS": "True",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma.start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/host_debug_unopt"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build host_debug_unopt"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000003000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "post_goma.ensure bqupload",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd/bqupload",
+ "-ensure-file",
+ "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.ensure bqupload.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--android",
+ "--android-cpu=x86",
+ "--no-lto"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --android --android-cpu=x86 --no-lto"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SEND_EXPECTED_OUTPUTS": "True",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma (2).start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build android_debug_x86"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:24.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000006000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma",
+ "GOMA_USE_LOCAL": "False"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/src/tools/android",
+ "-ensure-file",
+ "chromium/tools/android/avd a1SpJpmu4ReL4-4fR02ZV4FjhWb4z3p88a408gvfFWcC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-a1SpJpmu4ReL4-4f\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Install Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Start Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "./build_and_run_android_tests.sh",
+ "android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Scenario App Integration Tests"
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipes/engine/scenarios.py b/recipes/engine/scenarios.py
new file mode 100644
index 0000000..93ff238
--- /dev/null
+++ b/recipes/engine/scenarios.py
@@ -0,0 +1,196 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+from PB.recipes.flutter.engine import InputProperties
+from PB.recipes.flutter.engine import EnvProperties
+
+DEPS = [
+ 'depot_tools/depot_tools',
+ 'depot_tools/gclient',
+ 'flutter/bucket_util',
+ 'flutter/repo_util',
+ 'fuchsia/goma',
+ 'recipe_engine/buildbucket',
+ 'recipe_engine/cipd',
+ 'recipe_engine/context',
+ 'recipe_engine/file',
+ 'recipe_engine/path',
+ 'recipe_engine/platform',
+ 'recipe_engine/properties',
+ 'recipe_engine/python',
+ 'recipe_engine/step',
+]
+
+PROPERTIES = InputProperties
+ENV_PROPERTIES = EnvProperties
+
+
+def GetCheckoutPath(api):
+ return api.path['cache'].join('builder', 'src')
+
+
+def Build(api, config, *targets):
+ checkout = GetCheckoutPath(api)
+ build_dir = checkout.join('out', config)
+ goma_jobs = api.properties['goma_jobs']
+ ninja_args = [api.depot_tools.ninja_path, '-j', goma_jobs, '-C', build_dir]
+ ninja_args.extend(targets)
+ with api.goma.build_with_goma():
+ name='build %s' % ' '.join([config] + list(targets))
+ api.step(name, ninja_args)
+
+
+def RunGN(api, *args):
+ checkout = GetCheckoutPath(api)
+ gn_cmd = ['python', checkout.join('flutter/tools/gn'), '--goma']
+ gn_cmd.extend(args)
+ api.step('gn %s' % ' '.join(args), gn_cmd)
+
+
+def RunAndroidScenarioTests(api):
+ """Runs the scenario test app on a x86 Android emulator.
+
+ See details at
+ https://chromium.googlesource.com/chromium/src/+/HEAD/docs/android_emulator.md#using-your-own-emulator-image
+ """
+ engine_checkout = GetCheckoutPath(api)
+ android_tool_dir = engine_checkout.join('tools', 'android')
+
+ api.cipd.ensure(
+ android_tool_dir,
+ api.cipd.EnsureFile().add_package(
+ 'chromium/tools/android/avd',
+ 'a1SpJpmu4ReL4-4fR02ZV4FjhWb4z3p88a408gvfFWcC'))
+
+ avd_script_path = android_tool_dir.join(
+ 'src', 'tools', 'android', 'avd', 'avd.py')
+
+ avd_config = android_tool_dir.join(
+ 'src', 'tools', 'android', 'avd', 'proto', 'generic_android28.textpb')
+
+ with api.context(cwd=android_tool_dir):
+ api.python('Install Android emulator (API level 28)', avd_script_path,
+ ['install', '--avd-config', avd_config ])
+
+ api.python('Start Android emulator (API level 28)', avd_script_path,
+ ['start', '--no-read-only', '--avd-config', avd_config])
+
+ test_dir = engine_checkout.join('flutter', 'testing')
+ scenario_app_tests = test_dir.join('scenario_app')
+
+ # Proxies `python` since vpython cannot resolve spec files outside of the jar
+ # file containing the python scripts.
+ gradle_home_bin_dir = scenario_app_tests.join('android', 'gradle-home', 'bin')
+ with api.context(cwd = scenario_app_tests,
+ env_prefixes = {'PATH': [gradle_home_bin_dir]}):
+
+ result = api.step('Scenario App Integration Tests',
+ ['./build_and_run_android_tests.sh', 'android_debug_x86'],
+ ok_ret='all')
+ build_failures_dir = scenario_app_tests.join('build', 'reports', 'failures')
+ if result.exc_result.retcode != 0 and api.path.exists(build_failures_dir):
+ # Upload any diff failures.
+ # If there are any, upload them to the cloud bucket.
+ api.bucket_util.upload_folder(
+ 'Upload diff failures',
+ 'src/flutter/testing/scenario_app',
+ 'build/reports/diff_failures',
+ 'diff_failures.zip')
+ raise AssertionError('Diff detected. Please verify the diff failures.')
+
+
+def RunSteps(api, properties, env_properties):
+ cache_root = api.path['cache'].join('builder')
+ checkout = GetCheckoutPath(api)
+
+ api.file.rmtree('Clobber build output', checkout.join('out'))
+ api.file.ensure_directory('Ensure checkout cache', cache_root)
+ api.goma.ensure()
+
+ dart_bin = checkout.join('third_party', 'dart', 'tools', 'sdks', 'dart-sdk',
+ 'bin')
+ android_home = checkout.join('third_party', 'android_tools', 'sdk')
+ env = {'GOMA_DIR': api.goma.goma_dir, 'ANDROID_HOME': str(android_home)}
+ env_prefixes = {'PATH': [dart_bin]}
+
+ api.repo_util.engine_checkout(cache_root,
+ env,
+ env_prefixes,
+ clobber=properties.clobber)
+
+ with api.step.nest('Android SDK Licenses'):
+ api.file.ensure_directory('mkdir licenses', android_home.join('licenses'))
+ api.file.write_text('android sdk license',
+ android_home.join('licenses', 'android-sdk-license'),
+ str(properties.android_sdk_license))
+ api.file.write_text(
+ 'android sdk preview license',
+ android_home.join('licenses', 'android-sdk-preview-license'),
+ str(properties.android_sdk_preview_license))
+
+ with api.context(
+ cwd=cache_root,
+ env=env,
+ env_prefixes=env_prefixes), api.depot_tools.on_path():
+ RunGN(api, '--runtime-mode', 'debug', '--unoptimized')
+ Build(api, 'host_debug_unopt')
+
+ RunGN(api, '--android', '--android-cpu=x86', '--no-lto')
+ Build(api, 'android_debug_x86')
+
+ RunAndroidScenarioTests(api)
+
+
+def GenTests(api):
+ scenario_failures = GetCheckoutPath(api).join('flutter',
+ 'testing',
+ 'scenario_app',
+ 'build',
+ 'reports',
+ 'failures')
+ for upload_packages in (True, False):
+ yield api.test(
+ 'without_failure_upload_%d' % upload_packages,
+ api.buildbucket.ci_build(
+ builder='Linux Engine',
+ git_repo='https://chromium.googlesource.com/external/github.com/flutter/engine',
+ project='flutter',
+ revision='abcd1234',
+ ),
+ api.properties(
+ InputProperties(
+ android_sdk_license='android_sdk_hash',
+ goma_jobs='1024',
+ upload_packages=upload_packages,
+ ),
+ ),
+ api.path.exists(scenario_failures),
+ )
+ test = api.test(
+ 'with_failure_upload_%d' % upload_packages,
+ api.buildbucket.ci_build(
+ builder='Linux Engine',
+ git_repo='https://chromium.googlesource.com/external/github.com/flutter/engine',
+ project='flutter',
+ revision='abcd1234',
+ ),
+ api.properties(
+ InputProperties(
+ android_sdk_license='android_sdk_hash',
+ goma_jobs='1024',
+ upload_packages=upload_packages,
+ clobber=False,
+ ),
+ ),
+ # Makes the test fail.
+ api.step_data('Scenario App Integration Tests', retcode=1),
+ api.path.exists(scenario_failures),
+ api.expect_exception('AssertionError'),
+ )
+ if upload_packages:
+ test += api.step_data(
+ 'Ensure flutter/abcd1234/diff_failures.zip does not already exist on cloud storage',
+ retcode=1
+ )
+ yield test
diff --git "a/recipes/engine_scenarios.expected/Scenario app \050failure, upload_packages_ 0\051.json" "b/recipes/engine_scenarios.expected/Scenario app \050failure, upload_packages_ 0\051.json"
new file mode 100644
index 0000000..f48ad74
--- /dev/null
+++ "b/recipes/engine_scenarios.expected/Scenario app \050failure, upload_packages_ 0\051.json"
@@ -0,0 +1,1219 @@
+[
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CACHE]/builder/src/out"
+ ],
+ "infra_step": true,
+ "name": "Clobber build output"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder"
+ ],
+ "infra_step": true,
+ "name": "Ensure checkout cache"
+ },
+ {
+ "cmd": [],
+ "name": "ensure goma"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/goma/client",
+ "-ensure-file",
+ "fuchsia/third_party/goma/client/${platform} release",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure goma.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-release---------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/goma/client/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
+ "--spec-path",
+ "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'src/flutter', 'url': 'https://chromium.googlesource.com/external/github.com/flutter/engine'}]",
+ "--revision_mapping_file",
+ "{\"got_engine_revision\": \"src/flutter\"}",
+ "--git-cache-dir",
+ "[CACHE]/git",
+ "--cleanup-dir",
+ "[CLEANUP]/bot_update",
+ "--output_json",
+ "/path/to/tmp/json",
+ "--revision",
+ "src/flutter@abcd1234",
+ "--refs",
+ "refs/heads/master"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
+ "GIT_HTTP_LOW_SPEED_TIME": "300"
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0",
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "bot_update",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@Some step text@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision\": \"9221bca00ddbd888260084def81f09543281b952\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision_cp\": \"refs/heads/master@{#84512}\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"source_manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"directories\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"git_checkout\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repo_url\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"version\": 0@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision@\"9221bca00ddbd888260084def81f09543281b952\"@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/master@{#84512}\"@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_REPO[depot_tools]/gclient.py",
+ "runhooks"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gclient runhooks"
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--runtime-mode",
+ "debug",
+ "--unoptimized"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --runtime-mode debug --unoptimized"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma.start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/host_debug_unopt"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build host_debug_unopt"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000003000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "post_goma.ensure bqupload",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd/bqupload",
+ "-ensure-file",
+ "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.ensure bqupload.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--android",
+ "--android-cpu=x86",
+ "--no-lto"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --android --android-cpu=x86 --no-lto"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma (2).start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build android_debug_x86"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:24.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000006000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/src/tools/android",
+ "-ensure-file",
+ "chromium/tools/android/avd a1SpJpmu4ReL4-4fR02ZV4FjhWb4z3p88a408gvfFWcC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-a1SpJpmu4ReL4-4f\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Install Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Start Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "./build_and_run_android_tests.sh",
+ "android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Scenario App Integration Tests (Attempt: 1)",
+ "~followup_annotations": [
+ "@@@STEP_FAILURE@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "listdir",
+ "[CACHE]/builder/src/flutter/testing/scenario_app/build/reports/diff_failures"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "List diff failures (Attempt: 1)",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@listdir@[CACHE]/builder/src/flutter/testing/scenario_app/build/reports/diff_failures/diff.png@@@",
+ "@@@STEP_LOG_END@listdir@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Zip build/reports/diff_failures",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/flutter/testing/scenario_app/build/reports/diff_failures\", \"type\": \"dir\"}], \"output\": \"[CLEANUP]/tmp_tmp_1/diff_failures.zip\", \"root\": \"[CACHE]/builder/src/flutter/testing/scenario_app\"}"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_1"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "temp dir for Upload diff failures"
+ },
+ {
+ "failure": {
+ "failure": {},
+ "humanReason": "Step('Scenario App Integration Tests (Attempt: 1)') (retcode: 1)"
+ },
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git "a/recipes/engine_scenarios.expected/Scenario app \050failure, upload_packages_ 1\051.json" "b/recipes/engine_scenarios.expected/Scenario app \050failure, upload_packages_ 1\051.json"
new file mode 100644
index 0000000..e36c398
--- /dev/null
+++ "b/recipes/engine_scenarios.expected/Scenario app \050failure, upload_packages_ 1\051.json"
@@ -0,0 +1,1256 @@
+[
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CACHE]/builder/src/out"
+ ],
+ "infra_step": true,
+ "name": "Clobber build output"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder"
+ ],
+ "infra_step": true,
+ "name": "Ensure checkout cache"
+ },
+ {
+ "cmd": [],
+ "name": "ensure goma"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/goma/client",
+ "-ensure-file",
+ "fuchsia/third_party/goma/client/${platform} release",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure goma.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-release---------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/goma/client/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
+ "--spec-path",
+ "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'src/flutter', 'url': 'https://chromium.googlesource.com/external/github.com/flutter/engine'}]",
+ "--revision_mapping_file",
+ "{\"got_engine_revision\": \"src/flutter\"}",
+ "--git-cache-dir",
+ "[CACHE]/git",
+ "--cleanup-dir",
+ "[CLEANUP]/bot_update",
+ "--output_json",
+ "/path/to/tmp/json",
+ "--revision",
+ "src/flutter@abcd1234",
+ "--refs",
+ "refs/heads/master"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
+ "GIT_HTTP_LOW_SPEED_TIME": "300"
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0",
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "bot_update",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@Some step text@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision\": \"9221bca00ddbd888260084def81f09543281b952\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision_cp\": \"refs/heads/master@{#84512}\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"source_manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"directories\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"git_checkout\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repo_url\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"version\": 0@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision@\"9221bca00ddbd888260084def81f09543281b952\"@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/master@{#84512}\"@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_REPO[depot_tools]/gclient.py",
+ "runhooks"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gclient runhooks"
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--runtime-mode",
+ "debug",
+ "--unoptimized"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --runtime-mode debug --unoptimized"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma.start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/host_debug_unopt"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build host_debug_unopt"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000003000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "post_goma.ensure bqupload",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd/bqupload",
+ "-ensure-file",
+ "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.ensure bqupload.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--android",
+ "--android-cpu=x86",
+ "--no-lto"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --android --android-cpu=x86 --no-lto"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma (2).start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build android_debug_x86"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:24.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000006000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/src/tools/android",
+ "-ensure-file",
+ "chromium/tools/android/avd a1SpJpmu4ReL4-4fR02ZV4FjhWb4z3p88a408gvfFWcC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-a1SpJpmu4ReL4-4f\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Install Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Start Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "./build_and_run_android_tests.sh",
+ "android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Scenario App Integration Tests (Attempt: 1)",
+ "~followup_annotations": [
+ "@@@STEP_FAILURE@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "listdir",
+ "[CACHE]/builder/src/flutter/testing/scenario_app/build/reports/diff_failures"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "List diff failures (Attempt: 1)",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@listdir@[CACHE]/builder/src/flutter/testing/scenario_app/build/reports/diff_failures/diff.png@@@",
+ "@@@STEP_LOG_END@listdir@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[flutter::zip]/resources/zip.py"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Zip build/reports/diff_failures",
+ "stdin": "{\"entries\": [{\"path\": \"[CACHE]/builder/src/flutter/testing/scenario_app/build/reports/diff_failures\", \"type\": \"dir\"}], \"output\": \"[CLEANUP]/tmp_tmp_1/diff_failures.zip\", \"root\": \"[CACHE]/builder/src/flutter/testing/scenario_app\"}"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]/gsutil.py",
+ "----",
+ "cp",
+ "[CLEANUP]/tmp_tmp_1/diff_failures.zip",
+ "gs://flutter_infra/flutter/abcd1234/diff_failures.zip"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "gsutil upload diff_failures.zip",
+ "~followup_annotations": [
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra/flutter/abcd1234/diff_failures.zip@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CLEANUP]/tmp_tmp_1"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "temp dir for Upload diff failures"
+ },
+ {
+ "failure": {
+ "failure": {},
+ "humanReason": "Step('Scenario App Integration Tests (Attempt: 1)') (retcode: 1)"
+ },
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git "a/recipes/engine_scenarios.expected/Scenario app \050no failure, upload_packages_ 0\051.json" "b/recipes/engine_scenarios.expected/Scenario app \050no failure, upload_packages_ 0\051.json"
new file mode 100644
index 0000000..0eb9a23
--- /dev/null
+++ "b/recipes/engine_scenarios.expected/Scenario app \050no failure, upload_packages_ 0\051.json"
@@ -0,0 +1,1116 @@
+[
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CACHE]/builder/src/out"
+ ],
+ "infra_step": true,
+ "name": "Clobber build output"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder"
+ ],
+ "infra_step": true,
+ "name": "Ensure checkout cache"
+ },
+ {
+ "cmd": [],
+ "name": "ensure goma"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/goma/client",
+ "-ensure-file",
+ "fuchsia/third_party/goma/client/${platform} release",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure goma.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-release---------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/goma/client/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
+ "--spec-path",
+ "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'src/flutter', 'url': 'https://chromium.googlesource.com/external/github.com/flutter/engine'}]",
+ "--revision_mapping_file",
+ "{\"got_engine_revision\": \"src/flutter\"}",
+ "--git-cache-dir",
+ "[CACHE]/git",
+ "--cleanup-dir",
+ "[CLEANUP]/bot_update",
+ "--output_json",
+ "/path/to/tmp/json",
+ "--revision",
+ "src/flutter@abcd1234",
+ "--refs",
+ "refs/heads/master"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
+ "GIT_HTTP_LOW_SPEED_TIME": "300"
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0",
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "bot_update",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@Some step text@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision\": \"9221bca00ddbd888260084def81f09543281b952\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision_cp\": \"refs/heads/master@{#84512}\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"source_manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"directories\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"git_checkout\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repo_url\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"version\": 0@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision@\"9221bca00ddbd888260084def81f09543281b952\"@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/master@{#84512}\"@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_REPO[depot_tools]/gclient.py",
+ "runhooks"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gclient runhooks"
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--runtime-mode",
+ "debug",
+ "--unoptimized"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --runtime-mode debug --unoptimized"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma.start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/host_debug_unopt"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build host_debug_unopt"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000003000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "post_goma.ensure bqupload",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd/bqupload",
+ "-ensure-file",
+ "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.ensure bqupload.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--android",
+ "--android-cpu=x86",
+ "--no-lto"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --android --android-cpu=x86 --no-lto"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma (2).start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build android_debug_x86"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:24.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000006000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/src/tools/android",
+ "-ensure-file",
+ "chromium/tools/android/avd a1SpJpmu4ReL4-4fR02ZV4FjhWb4z3p88a408gvfFWcC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-a1SpJpmu4ReL4-4f\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Install Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Start Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "./build_and_run_android_tests.sh",
+ "android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Scenario App Integration Tests (Attempt: 1)"
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git "a/recipes/engine_scenarios.expected/Scenario app \050no failure, upload_packages_ 1\051.json" "b/recipes/engine_scenarios.expected/Scenario app \050no failure, upload_packages_ 1\051.json"
new file mode 100644
index 0000000..0eb9a23
--- /dev/null
+++ "b/recipes/engine_scenarios.expected/Scenario app \050no failure, upload_packages_ 1\051.json"
@@ -0,0 +1,1116 @@
+[
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "rmtree",
+ "[CACHE]/builder/src/out"
+ ],
+ "infra_step": true,
+ "name": "Clobber build output"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/builder"
+ ],
+ "infra_step": true,
+ "name": "Ensure checkout cache"
+ },
+ {
+ "cmd": [],
+ "name": "ensure goma"
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/goma/client",
+ "-ensure-file",
+ "fuchsia/third_party/goma/client/${platform} release",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "ensure goma.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-release---------\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/goma/client/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
+ "--spec-path",
+ "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'src/flutter', 'url': 'https://chromium.googlesource.com/external/github.com/flutter/engine'}]",
+ "--revision_mapping_file",
+ "{\"got_engine_revision\": \"src/flutter\"}",
+ "--git-cache-dir",
+ "[CACHE]/git",
+ "--cleanup-dir",
+ "[CLEANUP]/bot_update",
+ "--output_json",
+ "/path/to/tmp/json",
+ "--revision",
+ "src/flutter@abcd1234",
+ "--refs",
+ "refs/heads/master"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
+ "GIT_HTTP_LOW_SPEED_TIME": "300"
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0",
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "bot_update",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@Some step text@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": \"abcd1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision\": \"9221bca00ddbd888260084def81f09543281b952\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision_cp\": \"refs/heads/master@{#84512}\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"root\": \"src/flutter\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"source_manifest\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"directories\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"git_checkout\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"repo_url\": \"https://fake.org/src/flutter.git\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"version\": 0@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision@\"9221bca00ddbd888260084def81f09543281b952\"@@@",
+ "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/master@{#84512}\"@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_REPO[depot_tools]/gclient.py",
+ "runhooks"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]",
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gclient runhooks"
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--runtime-mode",
+ "debug",
+ "--unoptimized"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --runtime-mode debug --unoptimized"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma.start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/host_debug_unopt"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build host_debug_unopt"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"time_stamp_int\": 1337000003000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000003000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "post_goma.ensure bqupload",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd/bqupload",
+ "-ensure-file",
+ "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma.ensure bqupload.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "[CACHE]/builder/src/flutter/tools/gn",
+ "--goma",
+ "--android",
+ "--android-cpu=x86",
+ "--no-lto"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "gn --android --android-cpu=x86 --no-lto"
+ },
+ {
+ "cmd": [],
+ "name": "pre_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "restart"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "pre_goma (2).start_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "RECIPE_REPO[depot_tools]/ninja",
+ "-j",
+ "1024",
+ "-C",
+ "[CACHE]/builder/src/out/android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "build android_debug_x86"
+ },
+ {
+ "cmd": [],
+ "name": "post_goma (2)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "jsonstatus",
+ "[CACHE]/goma/client/jsonstatus"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_jsonstatus",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"notice\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra_status\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"num_user_error\": 0, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ping_status_code\": 200@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stat"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).goma_stats",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/goma/client/goma_ctl.py",
+ "stop"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GLOG_log_dir": "[CLEANUP]",
+ "GOMA_CACHE_DIR": "[CACHE]/goma",
+ "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+ "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+ "GOMA_SERVER_HOST": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog",
+ "GOMA_STORE_LOCAL_RUN_OUTPUT": "True",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).stop_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/compiler_proxy.WARNING",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_client warning log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@compiler_proxy.WARNING@test log@@@",
+ "@@@STEP_LOG_END@compiler_proxy.WARNING@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/goma/client/goma_stats.json",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).read goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "post_goma (2).write goma_stats.json",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"builder\": \"Linux Engine\", \"time_stamp\": \"2012-05-14 12:53:24.500000\", \"time_stamp_int\": 1337000006000}}@@@",
+ "@@@STEP_LOG_END@goma_stats.json@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_info\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_id\": 8945511751514863184, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"Linux Engine\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp\": \"2012-05-14 12:53:24.500000\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"time_stamp_int\": 1337000006000@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd/bqupload/bqupload",
+ "fuchsia-infra.artifacts.builds_beta_goma",
+ "[CACHE]/goma/client/goma_stats.json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client",
+ "GOMA_TMP_DIR": "[CLEANUP]/goma"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "post_goma (2).upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[CACHE]/builder/src/tools/android",
+ "-ensure-file",
+ "chromium/tools/android/avd a1SpJpmu4ReL4-4fR02ZV4FjhWb4z3p88a408gvfFWcC",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-a1SpJpmu4ReL4-4f\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"chromium/tools/android/avd\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "install",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Install Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/avd.py",
+ "start",
+ "--no-read-only",
+ "--avd-config",
+ "[CACHE]/builder/src/tools/android/src/tools/android/avd/proto/generic_android28.textpb"
+ ],
+ "cwd": "[CACHE]/builder/src/tools/android",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Start Android emulator (API level 28)"
+ },
+ {
+ "cmd": [
+ "./build_and_run_android_tests.sh",
+ "android_debug_x86"
+ ],
+ "cwd": "[CACHE]/builder/src/flutter/testing/scenario_app",
+ "env": {
+ "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/flutter/testing/scenario_app/android/gradle-home/bin",
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "Scenario App Integration Tests (Attempt: 1)"
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file