[monorepo] Enable tryjob runs for engine_v2 monorepo builds

An engine_v2 try build with no gitilesCommit property, but with
a gerritChanges property, will run against monorepo refs/heads/main.

Creates a new recipe module called monorepo, with utility methods
specific to monorepo builds and test data.

Bug: b/251733652
Change-Id: I44743e3ed8fe50d05003cd856f67ac775285a76e
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/35920
Reviewed-by: Godofredo Contreras <godofredoc@google.com>
(cherry picked from commit 7c00b89f401dea6e1c6c5b88419695fb2ce62996)
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/41711
Reviewed-by: Xilai Zhang <xilaizhang@google.com>
Reviewed-by: Ricardo Amador <ricardoamador@google.com>
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
diff --git a/recipe_modules/archives/api.py b/recipe_modules/archives/api.py
index 5c4d0f9..74e02d6 100644
--- a/recipe_modules/archives/api.py
+++ b/recipe_modules/archives/api.py
@@ -133,6 +133,11 @@
       generated artifacts.
     """
     results = []
+    # Do not archive if the build is a try build or has no input commit
+    if (self.m.buildbucket.build.input.gerrit_changes or
+        not self.m.buildbucket.gitiles_commit.project):
+      return results
+
     file_list = self._full_path_list(checkout, archive_config)
     # Calculate prefix and commit.
     is_monorepo = self.m.buildbucket.gitiles_commit.project == 'monorepo'
diff --git a/recipe_modules/archives/examples/full.expected/basic.json b/recipe_modules/archives/examples/full.expected/basic.json
index b2e060a..a3b5f1b 100644
--- a/recipe_modules/archives/examples/full.expected/basic.json
+++ b/recipe_modules/archives/examples/full.expected/basic.json
@@ -11,6 +11,18 @@
       "--recursive"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Expand directory",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@listdir@[START_DIR]/out/android_profile/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar@@@",
@@ -26,6 +38,18 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "git rev-parse"
   },
   {
@@ -41,6 +65,18 @@
       "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
   },
   {
@@ -55,6 +91,18 @@
       "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
   },
   {
@@ -71,6 +119,18 @@
       "gs://flutter_archives_v2/"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
       "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
@@ -89,6 +149,18 @@
       "[START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "gsutil download gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip"
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/monorepo_gcs.json b/recipe_modules/archives/examples/full.expected/monorepo_ci.json
similarity index 100%
rename from recipe_modules/archives/examples/full.expected/monorepo_gcs.json
rename to recipe_modules/archives/examples/full.expected/monorepo_ci.json
diff --git a/recipe_modules/archives/examples/full.expected/monorepo_try.json b/recipe_modules/archives/examples/full.expected/monorepo_try.json
new file mode 100644
index 0000000..b6042b6
--- /dev/null
+++ b/recipe_modules/archives/examples/full.expected/monorepo_try.json
@@ -0,0 +1,5 @@
+[
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipe_modules/archives/examples/full.py b/recipe_modules/archives/examples/full.py
index 6609bcf..36e664b 100644
--- a/recipe_modules/archives/examples/full.py
+++ b/recipe_modules/archives/examples/full.py
@@ -6,6 +6,7 @@
 
 DEPS = [
     'flutter/archives',
+    'flutter/monorepo',
     'recipe_engine/buildbucket',
     'recipe_engine/path',
     'recipe_engine/raw_io',
@@ -26,6 +27,7 @@
       ]
   }
   results = api.archives.engine_v2_gcs_paths(checkout, config)
+  if not results: return
   api.archives.upload_artifact(results[0].local, results[0].remote)
   api.archives.download(results[0].remote, results[0].local)
 
@@ -33,18 +35,10 @@
 def GenTests(api):
   yield api.test(
       'basic',
-      api.step_data(
-          'git rev-parse',
-          stdout=api.raw_io
-          .output_text('12345abcde12345abcde12345abcde12345abcde\n')
-      )
-  )
-  yield api.test(
-      'monorepo_gcs',
       api.buildbucket.ci_build(
-          project='dart',
-          bucket='ci.sandbox',
-          git_repo='https://dart.googlesource.com/monorepo',
+          project='flutter',
+          bucket='prod',
+          git_repo='https://flutter.googlesource.com/mirrors/engine',
           git_ref='refs/heads/main'
       ),
       api.step_data(
@@ -53,3 +47,15 @@
           .output_text('12345abcde12345abcde12345abcde12345abcde\n')
       )
   )
+  yield api.test(
+      'monorepo_ci', api.monorepo.ci_build(),
+      api.step_data(
+          'git rev-parse',
+          stdout=api.raw_io
+          .output_text('12345abcde12345abcde12345abcde12345abcde\n')
+      )
+  )
+  yield api.test(
+      'monorepo_try',
+      api.monorepo.try_build(),
+  )
diff --git a/recipe_modules/monorepo/__init__.py b/recipe_modules/monorepo/__init__.py
new file mode 100644
index 0000000..8a3e9ac
--- /dev/null
+++ b/recipe_modules/monorepo/__init__.py
@@ -0,0 +1,3 @@
+DEPS = [
+    'recipe_engine/buildbucket',
+]
diff --git a/recipe_modules/monorepo/api.py b/recipe_modules/monorepo/api.py
new file mode 100644
index 0000000..16b86f2
--- /dev/null
+++ b/recipe_modules/monorepo/api.py
@@ -0,0 +1,26 @@
+# Copyright 2022 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.
+
+# Module containing utility functions for building and testing
+# monorepo checkouts combining Dart and Flutter
+
+from recipe_engine import recipe_api
+
+
+class MonorepoApi(recipe_api.RecipeApi):
+  """Provides utilities to work with monorepo checkouts."""
+
+  @property
+  def is_monorepo_ci_build(self):
+    commit = self.m.buildbucket.build.input.gitiles_commit
+    return commit.project == 'monorepo'
+
+  @property
+  def is_monorepo_try_build(self):
+    input = self.m.buildbucket.build.input
+    return (
+        not input.gitiles_commit.project and input.gerrit_changes and
+        input.gerrit_changes[0].host == 'dart-review.googlesource.com' and
+        input.gerrit_changes[0].project == 'sdk'
+    )
diff --git a/recipe_modules/monorepo/test_api.py b/recipe_modules/monorepo/test_api.py
new file mode 100644
index 0000000..a3b0d56
--- /dev/null
+++ b/recipe_modules/monorepo/test_api.py
@@ -0,0 +1,32 @@
+# Copyright 2022 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_test_api
+
+
+class MonorepoTestApi(recipe_test_api.RecipeTestApi):
+
+  def ci_build(self, git_ref='refs/heads/main'):
+    """An example monorepo ci build"""
+    return self.m.buildbucket.ci_build(
+        project='dart',
+        bucket='ci.sandbox',
+        builder='monorepo_builder',
+        git_repo='https://dart.googlesource.com/monorepo',
+        git_ref=git_ref,
+        revision='a' * 40,
+        build_number=123,
+    )
+
+  def try_build(self):
+    """An example monorepo ci build"""
+    return self.m.buildbucket.try_build(
+        project='dart',
+        bucket='ci.sandbox',
+        builder='host-linux',
+        # Used to construct a Gerrit CL, not a Gitiles commit.
+        git_repo='https://dart.googlesource.com/sdk',
+        change_number=9425,
+        patch_set=3,
+    )
diff --git a/recipe_modules/monorepo/tests/test_monorepo.expected/engine_build.json b/recipe_modules/monorepo/tests/test_monorepo.expected/engine_build.json
new file mode 100644
index 0000000..b0aa02a
--- /dev/null
+++ b/recipe_modules/monorepo/tests/test_monorepo.expected/engine_build.json
@@ -0,0 +1,13 @@
+[
+  {
+    "cmd": [],
+    "name": "test",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@is_ci_build@false@@@",
+      "@@@SET_BUILD_PROPERTY@is_try_build@false@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipe_modules/monorepo/tests/test_monorepo.expected/monorepo_ci_build.json b/recipe_modules/monorepo/tests/test_monorepo.expected/monorepo_ci_build.json
new file mode 100644
index 0000000..43df1c7
--- /dev/null
+++ b/recipe_modules/monorepo/tests/test_monorepo.expected/monorepo_ci_build.json
@@ -0,0 +1,13 @@
+[
+  {
+    "cmd": [],
+    "name": "test",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@is_ci_build@true@@@",
+      "@@@SET_BUILD_PROPERTY@is_try_build@false@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipe_modules/monorepo/tests/test_monorepo.expected/monorepo_try_build.json b/recipe_modules/monorepo/tests/test_monorepo.expected/monorepo_try_build.json
new file mode 100644
index 0000000..b94a830
--- /dev/null
+++ b/recipe_modules/monorepo/tests/test_monorepo.expected/monorepo_try_build.json
@@ -0,0 +1,13 @@
+[
+  {
+    "cmd": [],
+    "name": "test",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@is_ci_build@false@@@",
+      "@@@SET_BUILD_PROPERTY@is_try_build@true@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipe_modules/monorepo/tests/test_monorepo.py b/recipe_modules/monorepo/tests/test_monorepo.py
new file mode 100644
index 0000000..d5668e7
--- /dev/null
+++ b/recipe_modules/monorepo/tests/test_monorepo.py
@@ -0,0 +1,36 @@
+# Copyright 2022 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 = [
+    'flutter/monorepo',
+    'recipe_engine/buildbucket',
+    'recipe_engine/step',
+]
+
+
+def RunSteps(api):
+  is_ci_build = api.monorepo.is_monorepo_ci_build
+  is_try_build = api.monorepo.is_monorepo_try_build
+  presentation = api.step.empty('test').presentation
+  presentation.properties['is_ci_build'] = is_ci_build
+  presentation.properties['is_try_build'] = is_try_build
+
+
+def GenTests(api):
+  yield api.test('monorepo_ci_build', api.monorepo.ci_build())
+
+  yield api.test('monorepo_try_build', api.monorepo.try_build())
+
+  yield api.test(
+      'engine_build',
+      api.buildbucket.ci_build(
+          project='flutter',
+          bucket='prod',
+          builder='prod-builder',
+          git_repo='https://flutter.googlesource.com/mirrors/engine',
+          git_ref='refs/heads/main',
+          revision='a' * 40,
+          build_number=123,
+      )
+  )
diff --git a/recipe_modules/repo_util/api.py b/recipe_modules/repo_util/api.py
index feeceaf..c7c0c13 100644
--- a/recipe_modules/repo_util/api.py
+++ b/recipe_modules/repo_util/api.py
@@ -19,6 +19,7 @@
     'engine': 'main',
     'cocoon': 'main',
     'infra': 'main',
+    'monorepo': 'main',
     'packages': 'main',
     'plugins': 'main',
     'openpay': 'main',
@@ -137,14 +138,15 @@
         self.m.properties.get('git_branch', '') in ['beta', 'stable']):
       local_custom_vars['release_candidate'] = True
     git_url = REPOS['monorepo']
-    git_id = self.m.buildbucket.gitiles_commit.id
-    git_ref = self.m.buildbucket.gitiles_commit.ref
-    if (self.m.buildbucket.gitiles_commit.host != 'dart.googlesource.com' or
-        self.m.buildbucket.gitiles_commit.project != 'monorepo'):
+    commit = self.m.buildbucket.gitiles_commit
+    # Commit will have empty fields if this is a try build.
+    git_id = commit.id or 'refs/heads/main'
+    git_ref = commit.ref or 'refs/heads/main'
+    if commit.project and (commit.host != 'dart.googlesource.com' or
+                           commit.project != 'monorepo'):
       raise ValueError(
           'Input reference is not on dart.googlesource.com/monorepo'
       )
-
     # Inner function to clobber the cache
     def _ClobberCache():
       # Ensure depot tools is in the path to prevent problems with vpython not
@@ -423,13 +425,13 @@
     """Returns true if the branch starts with "flutter-"."""
     commit_branches = self.current_commit_branches(checkout_path)
     for branch in commit_branches:
-     if branch.startswith('flutter-'):
-         return True
+      if branch.startswith('flutter-'):
+        return True
     return False
 
   def release_candidate_branch(self, checkout_path):
     """Returns the first branch that starts with "flutter-"."""
     commit_branches = self.current_commit_branches(checkout_path)
     for branch in commit_branches:
-     if branch.startswith('flutter-'):
-         return branch
+      if branch.startswith('flutter-'):
+        return branch
diff --git a/recipe_modules/repo_util/examples/full.expected/monorepo.json b/recipe_modules/repo_util/examples/full.expected/monorepo.json
index 894479e..63193e3 100644
--- a/recipe_modules/repo_util/examples/full.expected/monorepo.json
+++ b/recipe_modules/repo_util/examples/full.expected/monorepo.json
@@ -13,7 +13,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -40,7 +40,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -69,7 +69,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -96,7 +96,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -127,7 +127,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -159,7 +159,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -185,7 +185,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -210,7 +210,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -239,7 +239,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -264,7 +264,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -291,7 +291,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -322,7 +322,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -354,7 +354,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -380,7 +380,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -405,7 +405,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -434,7 +434,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -459,7 +459,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -486,7 +486,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -517,7 +517,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -549,7 +549,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -575,7 +575,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -600,7 +600,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -629,7 +629,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -654,7 +654,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -681,7 +681,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -712,7 +712,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -744,7 +744,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -770,7 +770,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -795,7 +795,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -824,7 +824,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -849,7 +849,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -876,7 +876,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -907,7 +907,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -938,7 +938,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -958,13 +958,13 @@
       "git",
       "checkout",
       "-f",
-      "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     ],
     "cwd": "[START_DIR]/flutter",
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -989,7 +989,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1018,7 +1018,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1043,7 +1043,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1070,7 +1070,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1093,7 +1093,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1116,7 +1116,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1143,7 +1143,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1163,116 +1163,6 @@
     "cmd": [
       "vpython3",
       "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "rmcontents",
-      "[START_DIR]"
-    ],
-    "env_suffixes": {
-      "DEPOT_TOOLS_UPDATE": [
-        "0"
-      ],
-      "PATH": [
-        "RECIPE_REPO[depot_tools]"
-      ]
-    },
-    "infra_step": true,
-    "luci_context": {
-      "realm": {
-        "name": "project:ci"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "Checkout source code.Clobber cache",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "rmtree",
-      "[CACHE]/git"
-    ],
-    "env_suffixes": {
-      "DEPOT_TOOLS_UPDATE": [
-        "0"
-      ],
-      "PATH": [
-        "RECIPE_REPO[depot_tools]"
-      ]
-    },
-    "infra_step": true,
-    "luci_context": {
-      "realm": {
-        "name": "project:ci"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "Checkout source code.Clobber git cache",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "ensure-directory",
-      "--mode",
-      "0777",
-      "[START_DIR]"
-    ],
-    "env_suffixes": {
-      "DEPOT_TOOLS_UPDATE": [
-        "0"
-      ],
-      "PATH": [
-        "RECIPE_REPO[depot_tools]"
-      ]
-    },
-    "infra_step": true,
-    "luci_context": {
-      "realm": {
-        "name": "project:ci"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "Checkout source code.Ensure checkout cache",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
       "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
       "--spec-path",
       "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'monorepo', 'url': 'https://dart.googlesource.com/monorepo'}]",
@@ -1285,12 +1175,12 @@
       "--output_json",
       "/path/to/tmp/json",
       "--revision",
-      "monorepo@2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "monorepo@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
       "--refs",
       "refs/heads/main"
     ],
     "env": {
-      "DEPOT_TOOLS_REPORT_BUILD": "project/ci/builder/8945511751514863184",
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/monorepo_builder/8945511751514863184",
       "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
       "GIT_HTTP_LOW_SPEED_TIME": "1800"
     },
@@ -1307,7 +1197,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1324,7 +1214,7 @@
       "@@@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@    \"monorepo\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"monorepo\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
       "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
       "@@@STEP_LOG_LINE@json.output@    \"engine/src\": {@@@",
@@ -1345,7 +1235,7 @@
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
       "@@@STEP_LOG_LINE@json.output@    \"monorepo\": {@@@",
       "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/monorepo.git\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@    }@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
       "@@@STEP_LOG_LINE@json.output@  \"patch_failure\": false, @@@",
@@ -1359,7 +1249,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"got_engine_revision_cp\": \"refs/heads/main@{#14355}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision\": \"ff25d17873bba4bc564d8c7217280aa254ed4541\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision_cp\": \"refs/heads/main@{#268536}\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision_cp\": \"refs/heads/main@{#255931}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
@@ -1393,7 +1283,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"monorepo\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/monorepo.git\", @@@",
-      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
@@ -1410,7 +1300,7 @@
       "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/main@{#14355}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_flutter_revision@\"ff25d17873bba4bc564d8c7217280aa254ed4541\"@@@",
       "@@@SET_BUILD_PROPERTY@got_flutter_revision_cp@\"refs/heads/main@{#268536}\"@@@",
-      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@SET_BUILD_PROPERTY@got_monorepo_revision_cp@\"refs/heads/main@{#255931}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_revision@\"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@"
     ]
@@ -1423,7 +1313,7 @@
       "runhooks"
     ],
     "env": {
-      "DEPOT_TOOLS_REPORT_BUILD": "project/ci/builder/8945511751514863184"
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/monorepo_builder/8945511751514863184"
     },
     "env_suffixes": {
       "DEPOT_TOOLS_UPDATE": [
@@ -1436,7 +1326,7 @@
     },
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
diff --git a/recipe_modules/repo_util/examples/full.expected/monorepo_first_bot_update_failed.json b/recipe_modules/repo_util/examples/full.expected/monorepo_first_bot_update_failed.json
index a32f325..238590c 100644
--- a/recipe_modules/repo_util/examples/full.expected/monorepo_first_bot_update_failed.json
+++ b/recipe_modules/repo_util/examples/full.expected/monorepo_first_bot_update_failed.json
@@ -13,7 +13,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -40,7 +40,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -69,7 +69,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -96,7 +96,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -127,7 +127,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -159,7 +159,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -185,7 +185,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -210,7 +210,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -239,7 +239,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -264,7 +264,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -291,7 +291,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -322,7 +322,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -354,7 +354,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -380,7 +380,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -405,7 +405,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -434,7 +434,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -459,7 +459,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -486,7 +486,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -517,7 +517,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -549,7 +549,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -575,7 +575,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -600,7 +600,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -629,7 +629,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -654,7 +654,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -681,7 +681,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -712,7 +712,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -744,7 +744,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -770,7 +770,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -795,7 +795,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -824,7 +824,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -849,7 +849,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -876,7 +876,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -907,7 +907,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -938,7 +938,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -958,13 +958,13 @@
       "git",
       "checkout",
       "-f",
-      "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     ],
     "cwd": "[START_DIR]/flutter",
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -989,7 +989,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1018,7 +1018,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1043,7 +1043,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1070,7 +1070,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1093,7 +1093,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1116,7 +1116,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1143,7 +1143,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1183,7 +1183,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1219,7 +1219,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1257,7 +1257,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1288,12 +1288,12 @@
       "--output_json",
       "/path/to/tmp/json",
       "--revision",
-      "monorepo@2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "monorepo@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
       "--refs",
       "refs/heads/main"
     ],
     "env": {
-      "DEPOT_TOOLS_REPORT_BUILD": "project/ci/builder/8945511751514863184",
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/monorepo_builder/8945511751514863184",
       "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
       "GIT_HTTP_LOW_SPEED_TIME": "1800"
     },
@@ -1310,7 +1310,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1327,7 +1327,7 @@
       "@@@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@    \"monorepo\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"monorepo\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
       "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
       "@@@STEP_LOG_LINE@json.output@    \"engine/src\": {@@@",
@@ -1348,7 +1348,7 @@
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
       "@@@STEP_LOG_LINE@json.output@    \"monorepo\": {@@@",
       "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/monorepo.git\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@    }@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
       "@@@STEP_LOG_LINE@json.output@  \"patch_failure\": false, @@@",
@@ -1362,7 +1362,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"got_engine_revision_cp\": \"refs/heads/main@{#14355}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision\": \"ff25d17873bba4bc564d8c7217280aa254ed4541\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision_cp\": \"refs/heads/main@{#268536}\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision_cp\": \"refs/heads/main@{#255931}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
@@ -1396,7 +1396,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"monorepo\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/monorepo.git\", @@@",
-      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
@@ -1413,7 +1413,7 @@
       "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/main@{#14355}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_flutter_revision@\"ff25d17873bba4bc564d8c7217280aa254ed4541\"@@@",
       "@@@SET_BUILD_PROPERTY@got_flutter_revision_cp@\"refs/heads/main@{#268536}\"@@@",
-      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@SET_BUILD_PROPERTY@got_monorepo_revision_cp@\"refs/heads/main@{#255931}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_revision@\"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@",
       "@@@STEP_EXCEPTION@@@"
@@ -1442,7 +1442,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1480,7 +1480,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1520,7 +1520,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1560,7 +1560,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1596,7 +1596,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1634,7 +1634,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1665,12 +1665,12 @@
       "--output_json",
       "/path/to/tmp/json",
       "--revision",
-      "monorepo@2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "monorepo@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
       "--refs",
       "refs/heads/main"
     ],
     "env": {
-      "DEPOT_TOOLS_REPORT_BUILD": "project/ci/builder/8945511751514863184",
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/monorepo_builder/8945511751514863184",
       "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
       "GIT_HTTP_LOW_SPEED_TIME": "1800"
     },
@@ -1687,7 +1687,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1704,7 +1704,7 @@
       "@@@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@    \"monorepo\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"monorepo\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
       "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
       "@@@STEP_LOG_LINE@json.output@    \"engine/src\": {@@@",
@@ -1725,7 +1725,7 @@
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
       "@@@STEP_LOG_LINE@json.output@    \"monorepo\": {@@@",
       "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/monorepo.git\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@    }@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
       "@@@STEP_LOG_LINE@json.output@  \"patch_failure\": false, @@@",
@@ -1739,7 +1739,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"got_engine_revision_cp\": \"refs/heads/main@{#14355}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision\": \"ff25d17873bba4bc564d8c7217280aa254ed4541\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision_cp\": \"refs/heads/main@{#268536}\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision_cp\": \"refs/heads/main@{#255931}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
@@ -1773,7 +1773,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"monorepo\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/monorepo.git\", @@@",
-      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
@@ -1790,7 +1790,7 @@
       "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/main@{#14355}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_flutter_revision@\"ff25d17873bba4bc564d8c7217280aa254ed4541\"@@@",
       "@@@SET_BUILD_PROPERTY@got_flutter_revision_cp@\"refs/heads/main@{#268536}\"@@@",
-      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@SET_BUILD_PROPERTY@got_monorepo_revision_cp@\"refs/heads/main@{#255931}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_revision@\"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@"
     ]
@@ -1803,7 +1803,7 @@
       "runhooks"
     ],
     "env": {
-      "DEPOT_TOOLS_REPORT_BUILD": "project/ci/builder/8945511751514863184"
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/monorepo_builder/8945511751514863184"
     },
     "env_suffixes": {
       "DEPOT_TOOLS_UPDATE": [
@@ -1816,7 +1816,7 @@
     },
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
diff --git a/recipe_modules/repo_util/examples/full.expected/monorepo_release.json b/recipe_modules/repo_util/examples/full.expected/monorepo_release.json
index 2e2170a..fcdb0db 100644
--- a/recipe_modules/repo_util/examples/full.expected/monorepo_release.json
+++ b/recipe_modules/repo_util/examples/full.expected/monorepo_release.json
@@ -13,7 +13,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -40,7 +40,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -69,7 +69,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -96,7 +96,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -125,7 +125,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -152,7 +152,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -183,7 +183,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -215,7 +215,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -241,7 +241,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -266,7 +266,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -295,7 +295,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -320,7 +320,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -347,7 +347,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -378,7 +378,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -410,7 +410,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -436,7 +436,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -461,7 +461,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -490,7 +490,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -515,7 +515,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -542,7 +542,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -573,7 +573,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -605,7 +605,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -631,7 +631,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -656,7 +656,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -685,7 +685,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -710,7 +710,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -737,7 +737,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -768,7 +768,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -800,7 +800,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -826,7 +826,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -851,7 +851,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -880,7 +880,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -905,7 +905,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -932,7 +932,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -963,7 +963,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -994,7 +994,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1014,13 +1014,13 @@
       "git",
       "checkout",
       "-f",
-      "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     ],
     "cwd": "[START_DIR]/flutter",
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1045,7 +1045,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1074,7 +1074,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1099,7 +1099,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1126,7 +1126,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1149,7 +1149,7 @@
     ],
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1176,7 +1176,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1203,7 +1203,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1232,7 +1232,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1259,7 +1259,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1284,7 +1284,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1310,7 +1310,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1337,7 +1337,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1367,7 +1367,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1404,7 +1404,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1440,7 +1440,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1478,7 +1478,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1509,12 +1509,12 @@
       "--output_json",
       "/path/to/tmp/json",
       "--revision",
-      "monorepo@2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "monorepo@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
       "--refs",
       "refs/heads/beta"
     ],
     "env": {
-      "DEPOT_TOOLS_REPORT_BUILD": "project/ci/builder/8945511751514863184",
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/monorepo_builder/8945511751514863184",
       "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
       "GIT_HTTP_LOW_SPEED_TIME": "1800"
     },
@@ -1531,7 +1531,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -1548,7 +1548,7 @@
       "@@@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@    \"monorepo\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"monorepo\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
       "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
       "@@@STEP_LOG_LINE@json.output@    \"engine/src\": {@@@",
@@ -1569,7 +1569,7 @@
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
       "@@@STEP_LOG_LINE@json.output@    \"monorepo\": {@@@",
       "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/monorepo.git\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@    }@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
       "@@@STEP_LOG_LINE@json.output@  \"patch_failure\": false, @@@",
@@ -1583,7 +1583,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"got_engine_revision_cp\": \"refs/heads/main@{#14355}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision\": \"ff25d17873bba4bc564d8c7217280aa254ed4541\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision_cp\": \"refs/heads/main@{#268536}\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision_cp\": \"refs/heads/main@{#255931}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
@@ -1617,7 +1617,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"monorepo\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/monorepo.git\", @@@",
-      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
@@ -1634,7 +1634,7 @@
       "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/main@{#14355}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_flutter_revision@\"ff25d17873bba4bc564d8c7217280aa254ed4541\"@@@",
       "@@@SET_BUILD_PROPERTY@got_flutter_revision_cp@\"refs/heads/main@{#268536}\"@@@",
-      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@SET_BUILD_PROPERTY@got_monorepo_revision_cp@\"refs/heads/main@{#255931}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_revision@\"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@"
     ]
@@ -1647,7 +1647,7 @@
       "runhooks"
     ],
     "env": {
-      "DEPOT_TOOLS_REPORT_BUILD": "project/ci/builder/8945511751514863184"
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/monorepo_builder/8945511751514863184"
     },
     "env_suffixes": {
       "DEPOT_TOOLS_UPDATE": [
@@ -1660,7 +1660,7 @@
     },
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
diff --git a/recipe_modules/repo_util/examples/full.expected/monorepo_tryjob.json b/recipe_modules/repo_util/examples/full.expected/monorepo_tryjob.json
new file mode 100644
index 0000000..2598caa
--- /dev/null
+++ b/recipe_modules/repo_util/examples/full.expected/monorepo_tryjob.json
@@ -0,0 +1,1525 @@
+[
+  {
+    "cmd": [],
+    "name": "Identify branches"
+  },
+  {
+    "cmd": [
+      "git",
+      "rev-parse",
+      "HEAD"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Identify branches.git rev-parse",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "branch",
+      "-a",
+      "--contains",
+      "12345abcde12345abcde12345abcde12345abcde"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Identify branches.git branch",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "Identify branches (2)"
+  },
+  {
+    "cmd": [
+      "git",
+      "rev-parse",
+      "HEAD"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Identify branches (2).git rev-parse",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "branch",
+      "-a",
+      "--contains",
+      "12345abcde12345abcde12345abcde12345abcde"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Identify branches (2).git branch",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "Checkout flutter/flutter"
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+      "--path",
+      "[START_DIR]/flutter",
+      "--url",
+      "https://flutter.googlesource.com/mirrors/flutter"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter.git setup",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "fetch",
+      "origin",
+      "master",
+      "--recurse-submodules",
+      "--progress",
+      "--tags"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "env": {
+      "PATH": "RECIPE_REPO[depot_tools]:<PATH>"
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter.git fetch",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "checkout",
+      "-f",
+      "FETCH_HEAD"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter.git checkout",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "rev-parse",
+      "HEAD"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter.read revision",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "clean",
+      "-f",
+      "-d",
+      "-x"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter.git clean",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "submodule",
+      "sync"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter.submodule sync",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "submodule",
+      "update",
+      "--init",
+      "--recursive"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter.submodule update",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "Checkout flutter/engine"
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+      "--path",
+      "[START_DIR]/engine",
+      "--url",
+      "https://flutter.googlesource.com/mirrors/engine"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/engine.git setup",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "fetch",
+      "origin",
+      "main",
+      "--recurse-submodules",
+      "--progress",
+      "--tags"
+    ],
+    "cwd": "[START_DIR]/engine",
+    "env": {
+      "PATH": "RECIPE_REPO[depot_tools]:<PATH>"
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/engine.git fetch",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "checkout",
+      "-f",
+      "FETCH_HEAD"
+    ],
+    "cwd": "[START_DIR]/engine",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/engine.git checkout",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "rev-parse",
+      "HEAD"
+    ],
+    "cwd": "[START_DIR]/engine",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/engine.read revision",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "clean",
+      "-f",
+      "-d",
+      "-x"
+    ],
+    "cwd": "[START_DIR]/engine",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/engine.git clean",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "submodule",
+      "sync"
+    ],
+    "cwd": "[START_DIR]/engine",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/engine.submodule sync",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "submodule",
+      "update",
+      "--init",
+      "--recursive"
+    ],
+    "cwd": "[START_DIR]/engine",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/engine.submodule update",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "Checkout flutter/cocoon"
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+      "--path",
+      "[START_DIR]/cocoon",
+      "--url",
+      "https://flutter.googlesource.com/mirrors/cocoon"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/cocoon.git setup",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "fetch",
+      "origin",
+      "main",
+      "--recurse-submodules",
+      "--progress",
+      "--tags"
+    ],
+    "cwd": "[START_DIR]/cocoon",
+    "env": {
+      "PATH": "RECIPE_REPO[depot_tools]:<PATH>"
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/cocoon.git fetch",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "checkout",
+      "-f",
+      "FETCH_HEAD"
+    ],
+    "cwd": "[START_DIR]/cocoon",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/cocoon.git checkout",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "rev-parse",
+      "HEAD"
+    ],
+    "cwd": "[START_DIR]/cocoon",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/cocoon.read revision",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "clean",
+      "-f",
+      "-d",
+      "-x"
+    ],
+    "cwd": "[START_DIR]/cocoon",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/cocoon.git clean",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "submodule",
+      "sync"
+    ],
+    "cwd": "[START_DIR]/cocoon",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/cocoon.submodule sync",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "submodule",
+      "update",
+      "--init",
+      "--recursive"
+    ],
+    "cwd": "[START_DIR]/cocoon",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/cocoon.submodule update",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "Checkout flutter/packages"
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+      "--path",
+      "[START_DIR]/packages",
+      "--url",
+      "https://flutter.googlesource.com/mirrors/packages"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/packages.git setup",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "fetch",
+      "origin",
+      "main",
+      "--recurse-submodules",
+      "--progress",
+      "--tags"
+    ],
+    "cwd": "[START_DIR]/packages",
+    "env": {
+      "PATH": "RECIPE_REPO[depot_tools]:<PATH>"
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/packages.git fetch",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "checkout",
+      "-f",
+      "FETCH_HEAD"
+    ],
+    "cwd": "[START_DIR]/packages",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/packages.git checkout",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "rev-parse",
+      "HEAD"
+    ],
+    "cwd": "[START_DIR]/packages",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/packages.read revision",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "clean",
+      "-f",
+      "-d",
+      "-x"
+    ],
+    "cwd": "[START_DIR]/packages",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/packages.git clean",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "submodule",
+      "sync"
+    ],
+    "cwd": "[START_DIR]/packages",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/packages.submodule sync",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "submodule",
+      "update",
+      "--init",
+      "--recursive"
+    ],
+    "cwd": "[START_DIR]/packages",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/packages.submodule update",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "Checkout flutter/flutter (2)"
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+      "--path",
+      "[START_DIR]/flutter",
+      "--url",
+      "https://flutter.googlesource.com/mirrors/flutter"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter (2).git setup",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "fetch",
+      "origin",
+      "beta",
+      "--recurse-submodules",
+      "--progress",
+      "--tags"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "env": {
+      "PATH": "RECIPE_REPO[depot_tools]:<PATH>"
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter (2).git fetch",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "checkout",
+      "-f",
+      "FETCH_HEAD"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter (2).git checkout",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "rev-parse",
+      "HEAD"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter (2).read revision",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "clean",
+      "-f",
+      "-d",
+      "-x"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter (2).git clean",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "submodule",
+      "sync"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter (2).submodule sync",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "submodule",
+      "update",
+      "--init",
+      "--recursive"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout flutter/flutter (2).submodule update",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "flutter",
+      "doctor",
+      "--verbose"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "flutter doctor",
+    "timeout": 300
+  },
+  {
+    "cmd": [
+      "git",
+      "rev-parse",
+      "HEAD"
+    ],
+    "cwd": "[START_DIR]/flutter",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "git rev-parse"
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "ensure directory"
+  },
+  {
+    "cmd": [],
+    "name": "Checkout source code"
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "rmcontents",
+      "[START_DIR]"
+    ],
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout source code.Clobber cache",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "rmtree",
+      "[CACHE]/git"
+    ],
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout source code.Clobber git cache",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]"
+    ],
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout source code.Ensure checkout cache",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "RECIPE_REPO[depot_tools]/gerrit_client.py",
+      "changes",
+      "--host",
+      "https://dart-review.googlesource.com",
+      "--json_file",
+      "/path/to/tmp/json",
+      "--limit",
+      "1",
+      "-p",
+      "change=9425",
+      "-o",
+      "ALL_REVISIONS",
+      "-o",
+      "DOWNLOAD_COMMANDS"
+    ],
+    "env": {
+      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout source code.gerrit fetch current CL info",
+    "timeout": 60,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"branch\": \"main\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"owner\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"John Doe\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"revisions\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"184ebe53805e102605d11f6b143486d15c23a09c\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"_number\": \"3\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"ref\": \"refs/changes/25/9425/3\"@@@",
+      "@@@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": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
+      "--spec-path",
+      "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'monorepo', 'url': 'https://dart.googlesource.com/monorepo'}]",
+      "--patch_root",
+      "monorepo",
+      "--revision_mapping_file",
+      "{\"got_buildroot_revision\": \"engine/src\", \"got_dart_revision\": \"engine/src/third_party/dart\", \"got_engine_revision\": \"engine/src/flutter\", \"got_flutter_revision\": \"flutter\", \"got_monorepo_revision\": \"monorepo\"}",
+      "--git-cache-dir",
+      "[CACHE]/git",
+      "--cleanup-dir",
+      "[CLEANUP]/bot_update",
+      "--output_json",
+      "/path/to/tmp/json",
+      "--patch_ref",
+      "https://dart.googlesource.com/sdk@refs/heads/main:refs/changes/25/9425/3",
+      "--revision",
+      "monorepo@refs/heads/main",
+      "--refs",
+      "refs/heads/main"
+    ],
+    "env": {
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/host-linux/8945511751514863184",
+      "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
+      "GIT_HTTP_LOW_SPEED_TIME": "1800"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0",
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]",
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "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@    \"monorepo\": \"refs/heads/main\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"engine/src\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/engine/src.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"851705163d0a071411a2461348b2fa0f4365dd2b\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"engine/src/flutter\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/engine/src/flutter.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"8d715353df333b3d997121c3d17cfe043f0a33ee\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"engine/src/third_party/dart\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/engine/src/third_party/dart.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"56b272d88fce292881d9d6a89d1a88b53f868a7f\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"flutter\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/flutter.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"ff25d17873bba4bc564d8c7217280aa254ed4541\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"monorepo\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/monorepo.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2f4f1bacc7a19d77be7c7c6c32043cfb27d448dc\"@@@",
+      "@@@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\": \"monorepo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_buildroot_revision\": \"851705163d0a071411a2461348b2fa0f4365dd2b\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_buildroot_revision_cp\": \"refs/heads/main@{#278358}\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_dart_revision\": \"56b272d88fce292881d9d6a89d1a88b53f868a7f\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_dart_revision_cp\": \"refs/heads/main@{#135384}\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_engine_revision\": \"8d715353df333b3d997121c3d17cfe043f0a33ee\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_engine_revision_cp\": \"refs/heads/main@{#14355}\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision\": \"ff25d17873bba4bc564d8c7217280aa254ed4541\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision_cp\": \"refs/heads/main@{#268536}\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"2f4f1bacc7a19d77be7c7c6c32043cfb27d448dc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision_cp\": \"refs/heads/main@{#255931}\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"root\": \"monorepo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"source_manifest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"directories\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"engine/src\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/engine/src.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"851705163d0a071411a2461348b2fa0f4365dd2b\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        }@@@",
+      "@@@STEP_LOG_LINE@json.output@      }, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"engine/src/flutter\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/engine/src/flutter.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"8d715353df333b3d997121c3d17cfe043f0a33ee\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        }@@@",
+      "@@@STEP_LOG_LINE@json.output@      }, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"engine/src/third_party/dart\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/engine/src/third_party/dart.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"56b272d88fce292881d9d6a89d1a88b53f868a7f\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        }@@@",
+      "@@@STEP_LOG_LINE@json.output@      }, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"flutter\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/flutter.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"ff25d17873bba4bc564d8c7217280aa254ed4541\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        }@@@",
+      "@@@STEP_LOG_LINE@json.output@      }, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"monorepo\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/monorepo.git\", @@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2f4f1bacc7a19d77be7c7c6c32043cfb27d448dc\"@@@",
+      "@@@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_buildroot_revision@\"851705163d0a071411a2461348b2fa0f4365dd2b\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_buildroot_revision_cp@\"refs/heads/main@{#278358}\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_dart_revision@\"56b272d88fce292881d9d6a89d1a88b53f868a7f\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_dart_revision_cp@\"refs/heads/main@{#135384}\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_engine_revision@\"8d715353df333b3d997121c3d17cfe043f0a33ee\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/main@{#14355}\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_flutter_revision@\"ff25d17873bba4bc564d8c7217280aa254ed4541\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_flutter_revision_cp@\"refs/heads/main@{#268536}\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"2f4f1bacc7a19d77be7c7c6c32043cfb27d448dc\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_monorepo_revision_cp@\"refs/heads/main@{#255931}\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision@\"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_REPO[depot_tools]/gclient.py",
+      "runhooks"
+    ],
+    "env": {
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/host-linux/8945511751514863184"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]",
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout source code.gclient runhooks",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipe_modules/repo_util/examples/full.expected/monorepo_wrong_host.json b/recipe_modules/repo_util/examples/full.expected/monorepo_wrong_host.json
index b7d221f..b564bd8 100644
--- a/recipe_modules/repo_util/examples/full.expected/monorepo_wrong_host.json
+++ b/recipe_modules/repo_util/examples/full.expected/monorepo_wrong_host.json
@@ -1163,9 +1163,9 @@
       "The recipe has crashed at point 'Uncaught exception'!",
       "",
       "Traceback (most recent call last):",
-      "  File \"RECIPE_REPO[flutter]/recipe_modules/repo_util/examples/full.py\", line 47, in RunSteps",
+      "  File \"RECIPE_REPO[flutter]/recipe_modules/repo_util/examples/full.py\", line 48, in RunSteps",
       "    api.repo_util.monorepo_checkout(checkout_path, {}, {})",
-      "  File \"RECIPE_REPO[flutter]/recipe_modules/repo_util/api.py\", line 144, in monorepo_checkout",
+      "  File \"RECIPE_REPO[flutter]/recipe_modules/repo_util/api.py\", line 147, in monorepo_checkout",
       "    raise ValueError(",
       "ValueError('Input reference is not on dart.googlesource.com/monorepo')"
     ]
diff --git a/recipe_modules/repo_util/examples/full.py b/recipe_modules/repo_util/examples/full.py
index ed50feb..d996e3f 100644
--- a/recipe_modules/repo_util/examples/full.py
+++ b/recipe_modules/repo_util/examples/full.py
@@ -3,6 +3,7 @@
 # found in the LICENSE file.
 
 DEPS = [
+    'flutter/monorepo',
     'flutter/repo_util',
     'recipe_engine/buildbucket',
     'recipe_engine/context',
@@ -42,7 +43,7 @@
   env, env_paths = api.repo_util.flutter_environment(flutter_checkout_path)
   api.repo_util.in_release_and_main(flutter_checkout_path)
   checkout_path = api.path['start_dir']
-  if api.buildbucket.gitiles_commit.project == 'monorepo':
+  if api.monorepo.is_monorepo_ci_build or api.monorepo.is_monorepo_try_build:
     api.file.ensure_directory('ensure directory', checkout_path)
     api.repo_util.monorepo_checkout(checkout_path, {}, {})
   else:
@@ -92,18 +93,15 @@
   yield api.test(
       'monorepo_release', api.repo_util.flutter_environment_data(),
       api.properties(git_branch='beta', clobber=True),
-      api.buildbucket.ci_build(
-          git_repo='https://dart.googlesource.com/monorepo',
-          git_ref='refs/heads/beta'
-      )
+      api.monorepo.ci_build(git_ref='refs/heads/beta')
   )
   yield api.test(
       'monorepo', api.repo_util.flutter_environment_data(),
-      api.properties(clobber=True),
-      api.buildbucket.ci_build(
-          git_repo='https://dart.googlesource.com/monorepo',
-          git_ref='refs/heads/main'
-      )
+      api.monorepo.ci_build()
+  )
+  yield api.test(
+      'monorepo_tryjob', api.repo_util.flutter_environment_data(),
+      api.properties(clobber=True), api.monorepo.try_build()
   )
   yield api.test(
       'monorepo_wrong_host', api.repo_util.flutter_environment_data(),
@@ -116,10 +114,7 @@
       'monorepo_first_bot_update_failed',
       api.repo_util.flutter_environment_data(),
       api.properties(clobber=True),
-      api.buildbucket.ci_build(
-          git_repo='https://dart.googlesource.com/monorepo',
-          git_ref='refs/heads/main'
-      ),
+      api.monorepo.ci_build(),
       # Next line force a fail condition for the bot update
       # first execution.
       api.step_data("Checkout source code.bot_update", retcode=1)
diff --git a/recipe_modules/repo_util/examples/unsupported.expected/unsupported.json b/recipe_modules/repo_util/examples/unsupported.expected/unsupported.json
index 6e6dae7..013eefd 100644
--- a/recipe_modules/repo_util/examples/unsupported.expected/unsupported.json
+++ b/recipe_modules/repo_util/examples/unsupported.expected/unsupported.json
@@ -9,7 +9,7 @@
       "Traceback (most recent call last):",
       "  File \"RECIPE_REPO[flutter]/recipe_modules/repo_util/examples/unsupported.py\", line 13, in RunSteps",
       "    api.repo_util.checkout('unsupported_repo', repo_dir)",
-      "  File \"RECIPE_REPO[flutter]/recipe_modules/repo_util/api.py\", line 219, in checkout",
+      "  File \"RECIPE_REPO[flutter]/recipe_modules/repo_util/api.py\", line 221, in checkout",
       "    raise ValueError('Unsupported repo: %s' % name)",
       "ValueError('Unsupported repo: unsupported_repo')"
     ]
diff --git a/recipe_modules/shard_util_v2/api.py b/recipe_modules/shard_util_v2/api.py
index 81d837e..03d97d9 100644
--- a/recipe_modules/shard_util_v2/api.py
+++ b/recipe_modules/shard_util_v2/api.py
@@ -74,22 +74,22 @@
     return result
 
   def pre_process_properties(self, target):
-   """Converts json properties to dicts or lists.
+    """Converts json properties to dicts or lists.
 
-   Dict or lists in ci_yaml are passed as json string to recipes and they
-   need to be converted back to dict or lists before passing them to subbuilds.
+    Dict or lists in ci_yaml are passed as json string to recipes and they
+    need to be converted back to dict or lists before passing them to subbuilds.
 
-   Args:
-     target: A target dictionary as read from the yaml file.
-   """
-   if target.get('properties'):
-     properties = target.get('properties')
-     new_props = {}
-     for k, v in properties.items():
-       if isinstance(v,str) and (v.startswith('[') or v.startswith('{')):
-         new_props[k] = json.loads(v)
-     target['properties'] = new_props
-   return target
+    Args:
+      target: A target dictionary as read from the yaml file.
+    """
+    if target.get('properties'):
+      properties = target.get('properties')
+      new_props = {}
+      for k, v in properties.items():
+        if isinstance(v,str) and (v.startswith('[') or v.startswith('{')):
+          new_props[k] = json.loads(v)
+      target['properties'] = new_props
+    return target
 
   def struct_to_dict(self, struct):
     """Transforms a proto structure to a dictionary.
@@ -197,6 +197,9 @@
       builder_name = build.get(
           'drone_builder_name',
           '%s %sEngine Drone' % (platform_name, environment))
+      suffix = drone_properties.get('builder_name_suffix')
+      if suffix:
+        builder_name = '%s%s' % (builder_name, suffix)
       parent = self.m.buildbucket.build.builder
       led_data = self.m.led(
           'get-builder',
@@ -262,6 +265,9 @@
       builder_name = build.get(
           'drone_builder_name',
           '%s %sEngine Drone' % (platform_name, environment))
+      suffix = drone_properties.get('builder_name_suffix')
+      if suffix:
+        builder_name = '%s%s' % (builder_name, suffix)
       # Delete builds property if it exists.
       drone_properties.pop('builds', None)
       for d in drone_dimensions:
@@ -452,7 +458,7 @@
               'Download for build %s and cas key %s' % (build_id, build_name),
               cas_out_dict['full_build'],
               out_build_paths
-        )
+          )
 
   def archive_full_build(self, build_dir, target):
     """Archives a full build in cas.
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_bb.json b/recipe_modules/shard_util_v2/examples/full.expected/presubmit_bb.json
index 83c40d7..fa3094e 100644
--- a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_bb.json
+++ b/recipe_modules/shard_util_v2/examples/full.expected/presubmit_bb.json
@@ -24,7 +24,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"custom drone builder\", \"project\": \"fuchsia\"}, \"dimensions\": [{\"key\": \"dimension1\", \"value\": \"abc\"}], \"exe\": {\"cipdVersion\": \"refs/heads/main\"}, \"executionTimeout\": \"7200s\", \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gerritChanges\": [{\"change\": \"123456\", \"host\": \"fuchsia-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"fuchsia\"}], \"priority\": 25, \"properties\": {\"build\": {\"drone_builder_name\": \"custom drone builder\", \"drone_dimensions\": [\"dimension1=abc\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}}, \"environment\": \"Staging\", \"gclient_variables\": {}, \"git_ref\": \"refs/123/master\", \"git_url\": \"http://abc\", \"no_goma\": \"true\", \"recipe\": \"engine_v2/builder\", \"task_name\": \"mytask\", \"tests\": [{\"dependencies\": [\"ios_debug\"], \"name\": \"felt_test\", \"parameters\": [\"test\"], \"scripts\": [\"out/script.sh\"]}]}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"custom drone builder-try\", \"project\": \"fuchsia\"}, \"dimensions\": [{\"key\": \"dimension1\", \"value\": \"abc\"}], \"exe\": {\"cipdVersion\": \"refs/heads/main\"}, \"executionTimeout\": \"7200s\", \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gerritChanges\": [{\"change\": \"123456\", \"host\": \"fuchsia-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"fuchsia\"}], \"priority\": 25, \"properties\": {\"build\": {\"drone_builder_name\": \"custom drone builder\", \"drone_dimensions\": [\"dimension1=abc\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}}, \"builder_name_suffix\": \"-try\", \"environment\": \"Staging\", \"gclient_variables\": {}, \"git_ref\": \"refs/123/master\", \"git_url\": \"http://abc\", \"no_goma\": \"true\", \"recipe\": \"engine_v2/builder\", \"task_name\": \"mytask\", \"tests\": [{\"dependencies\": [\"ios_debug\"], \"name\": \"felt_test\", \"parameters\": [\"test\"], \"scripts\": [\"out/script.sh\"]}]}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -48,7 +48,7 @@
       "@@@STEP_LOG_LINE@request@      \"scheduleBuild\": {@@@",
       "@@@STEP_LOG_LINE@request@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"bucket\": \"try\", @@@",
-      "@@@STEP_LOG_LINE@request@          \"builder\": \"custom drone builder\", @@@",
+      "@@@STEP_LOG_LINE@request@          \"builder\": \"custom drone builder-try\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"fuchsia\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
@@ -96,6 +96,7 @@
       "@@@STEP_LOG_LINE@request@              \"targets\": []@@@",
       "@@@STEP_LOG_LINE@request@            }@@@",
       "@@@STEP_LOG_LINE@request@          }, @@@",
+      "@@@STEP_LOG_LINE@request@          \"builder_name_suffix\": \"-try\", @@@",
       "@@@STEP_LOG_LINE@request@          \"environment\": \"Staging\", @@@",
       "@@@STEP_LOG_LINE@request@          \"gclient_variables\": {}, @@@",
       "@@@STEP_LOG_LINE@request@          \"git_ref\": \"refs/123/master\", @@@",
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led.json b/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led.json
index 002cf3b..87e6f8b 100644
--- a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led.json
+++ b/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led.json
@@ -8,7 +8,7 @@
       "led",
       "get-builder",
       "-real-build",
-      "proj/try/custom drone builder"
+      "proj/try/custom drone builder-try"
     ],
     "luci_context": {
       "realm": {
@@ -31,7 +31,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        }@@@",
       "@@@STEP_LOG_LINE@proto.output@      }@@@",
@@ -52,6 +52,8 @@
       "-p",
       "build={\"drone_builder_name\": \"custom drone builder\", \"drone_dimensions\": [\"dimension1=abc\"], \"gn\": [], \"name\": \"ios_debug\", \"ninja\": [\"ios_debug\"]}",
       "-p",
+      "builder_name_suffix=\"-try\"",
+      "-p",
       "environment=\"Staging\"",
       "-p",
       "gclient_variables={}",
@@ -79,7 +81,7 @@
       }
     },
     "name": "launch builds.led edit",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        }\n      }\n    }\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        }\n      }\n    }\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -88,7 +90,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -162,6 +164,7 @@
       "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ]@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"refs/123/master\",@@@",
@@ -211,7 +214,7 @@
       }
     },
     "name": "launch builds.led edit (2)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    }\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    }\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -220,7 +223,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -294,6 +297,7 @@
       "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ]@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"refs/123/master\",@@@",
@@ -344,7 +348,7 @@
       }
     },
     "name": "launch builds.led edit (3)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -353,7 +357,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -427,6 +431,7 @@
       "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ]@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"refs/123/master\",@@@",
@@ -477,7 +482,7 @@
       }
     },
     "name": "launch builds.led edit (4)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -486,7 +491,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -560,6 +565,7 @@
       "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ]@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"refs/123/master\",@@@",
@@ -610,7 +616,7 @@
       }
     },
     "name": "launch builds.led edit (5)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -619,7 +625,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -712,6 +718,7 @@
       "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ]@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"refs/123/master\",@@@",
@@ -761,7 +768,7 @@
       }
     },
     "name": "launch builds.led launch",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"buildbucket\": {\n            \"agent\": {\n              \"input\": {\n                \"data\": {\n                  \"kitchen-checkout\": {\n                    \"cas\": {\n                      \"digest\": {\n                        \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                        \"size_bytes\": \"91\"\n                      }\n                    }\n                  }\n                }\n              },\n              \"purposes\": {\n                \"kitchen-checkout\": \"PURPOSE_EXE_PAYLOAD\"\n              }\n            }\n          },\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"buildbucket\": {\n            \"agent\": {\n              \"input\": {\n                \"data\": {\n                  \"kitchen-checkout\": {\n                    \"cas\": {\n                      \"digest\": {\n                        \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                        \"size_bytes\": \"91\"\n                      }\n                    }\n                  }\n                }\n              },\n              \"purposes\": {\n                \"kitchen-checkout\": \"PURPOSE_EXE_PAYLOAD\"\n              }\n            }\n          },\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -1309,7 +1316,7 @@
       "led",
       "get-builder",
       "-real-build",
-      "proj/try/Linux Engine Drone"
+      "proj/try/Linux Engine Drone-try"
     ],
     "luci_context": {
       "realm": {
@@ -1332,7 +1339,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        }@@@",
       "@@@STEP_LOG_LINE@proto.output@      }@@@",
@@ -1353,6 +1360,8 @@
       "-p",
       "build={\"dependencies\": [\"ios_debug\"], \"name\": \"felt_test\", \"parameters\": [\"test\"], \"resolved_deps\": [{\"ios_debug\": \"bcd\", \"web_tests\": \"abc\"}], \"scripts\": [\"out/script.sh\"]}",
       "-p",
+      "builder_name_suffix=\"-try\"",
+      "-p",
       "environment=\"Staging\"",
       "-p",
       "gclient_variables={}",
@@ -1380,7 +1389,7 @@
       }
     },
     "name": "launch builds (2).led edit",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        }\n      }\n    }\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        }\n      }\n    }\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -1389,7 +1398,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -1470,6 +1479,7 @@
       "@@@STEP_LOG_LINE@proto.output@                \"out/script.sh\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ]@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"refs/123/master\",@@@",
@@ -1519,7 +1529,7 @@
       }
     },
     "name": "launch builds (2).led edit (2)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dependencies\": [\n                \"ios_debug\"\n              ],\n              \"name\": \"felt_test\",\n              \"parameters\": [\n                \"test\"\n              ],\n              \"resolved_deps\": [\n                {\n                  \"ios_debug\": \"bcd\",\n                  \"web_tests\": \"abc\"\n                }\n              ],\n              \"scripts\": [\n                \"out/script.sh\"\n              ]\n            },\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    }\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dependencies\": [\n                \"ios_debug\"\n              ],\n              \"name\": \"felt_test\",\n              \"parameters\": [\n                \"test\"\n              ],\n              \"resolved_deps\": [\n                {\n                  \"ios_debug\": \"bcd\",\n                  \"web_tests\": \"abc\"\n                }\n              ],\n              \"scripts\": [\n                \"out/script.sh\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    }\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -1528,7 +1538,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -1609,6 +1619,7 @@
       "@@@STEP_LOG_LINE@proto.output@                \"out/script.sh\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ]@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"refs/123/master\",@@@",
@@ -1659,7 +1670,7 @@
       }
     },
     "name": "launch builds (2).led edit (3)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dependencies\": [\n                \"ios_debug\"\n              ],\n              \"name\": \"felt_test\",\n              \"parameters\": [\n                \"test\"\n              ],\n              \"resolved_deps\": [\n                {\n                  \"ios_debug\": \"bcd\",\n                  \"web_tests\": \"abc\"\n                }\n              ],\n              \"scripts\": [\n                \"out/script.sh\"\n              ]\n            },\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dependencies\": [\n                \"ios_debug\"\n              ],\n              \"name\": \"felt_test\",\n              \"parameters\": [\n                \"test\"\n              ],\n              \"resolved_deps\": [\n                {\n                  \"ios_debug\": \"bcd\",\n                  \"web_tests\": \"abc\"\n                }\n              ],\n              \"scripts\": [\n                \"out/script.sh\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -1668,7 +1679,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -1749,6 +1760,7 @@
       "@@@STEP_LOG_LINE@proto.output@                \"out/script.sh\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ]@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"refs/123/master\",@@@",
@@ -1799,7 +1811,7 @@
       }
     },
     "name": "launch builds (2).led edit (4)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dependencies\": [\n                \"ios_debug\"\n              ],\n              \"name\": \"felt_test\",\n              \"parameters\": [\n                \"test\"\n              ],\n              \"resolved_deps\": [\n                {\n                  \"ios_debug\": \"bcd\",\n                  \"web_tests\": \"abc\"\n                }\n              ],\n              \"scripts\": [\n                \"out/script.sh\"\n              ]\n            },\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dependencies\": [\n                \"ios_debug\"\n              ],\n              \"name\": \"felt_test\",\n              \"parameters\": [\n                \"test\"\n              ],\n              \"resolved_deps\": [\n                {\n                  \"ios_debug\": \"bcd\",\n                  \"web_tests\": \"abc\"\n                }\n              ],\n              \"scripts\": [\n                \"out/script.sh\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -1808,7 +1820,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -1908,6 +1920,7 @@
       "@@@STEP_LOG_LINE@proto.output@                \"out/script.sh\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ]@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"refs/123/master\",@@@",
@@ -1957,7 +1970,7 @@
       }
     },
     "name": "launch builds (2).led launch",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"buildbucket\": {\n            \"agent\": {\n              \"input\": {\n                \"data\": {\n                  \"kitchen-checkout\": {\n                    \"cas\": {\n                      \"digest\": {\n                        \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                        \"size_bytes\": \"91\"\n                      }\n                    }\n                  }\n                }\n              },\n              \"purposes\": {\n                \"kitchen-checkout\": \"PURPOSE_EXE_PAYLOAD\"\n              }\n            }\n          },\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dependencies\": [\n                \"ios_debug\"\n              ],\n              \"name\": \"felt_test\",\n              \"parameters\": [\n                \"test\"\n              ],\n              \"resolved_deps\": [\n                {\n                  \"ios_debug\": \"bcd\",\n                  \"web_tests\": \"abc\"\n                }\n              ],\n              \"scripts\": [\n                \"out/script.sh\"\n              ]\n            },\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"buildbucket\": {\n            \"agent\": {\n              \"input\": {\n                \"data\": {\n                  \"kitchen-checkout\": {\n                    \"cas\": {\n                      \"digest\": {\n                        \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                        \"size_bytes\": \"91\"\n                      }\n                    }\n                  }\n                }\n              },\n              \"purposes\": {\n                \"kitchen-checkout\": \"PURPOSE_EXE_PAYLOAD\"\n              }\n            }\n          },\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dependencies\": [\n                \"ios_debug\"\n              ],\n              \"name\": \"felt_test\",\n              \"parameters\": [\n                \"test\"\n              ],\n              \"resolved_deps\": [\n                {\n                  \"ios_debug\": \"bcd\",\n                  \"web_tests\": \"abc\"\n                }\n              ],\n              \"scripts\": [\n                \"out/script.sh\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
diff --git a/recipe_modules/shard_util_v2/examples/full.py b/recipe_modules/shard_util_v2/examples/full.py
index bbe4a92..97c7fe1 100644
--- a/recipe_modules/shard_util_v2/examples/full.py
+++ b/recipe_modules/shard_util_v2/examples/full.py
@@ -77,6 +77,7 @@
           "scripts": ["out/script.sh"], "parameters": ["test"]
       }],
       'environment': 'Staging',
+      'builder_name_suffix': '-try',
       'dependencies': [{"dependency": "android_sdk"},
                        {"dependency": "chrome_and_driver"}],
       '$recipe_engine/led': {
@@ -105,7 +106,7 @@
           "scripts": ["out/script.sh"], "parameters": ["test"]
       }], 'dependencies': [{"dependency": "android_sdk"},
                            {"dependency": "chrome_and_driver"}],
-      'environment': 'Staging'
+      'environment': 'Staging', 'builder_name_suffix': '-try'
   }
 
   presubmit_props = copy.deepcopy(props)
diff --git a/recipes/engine_v2/builder.expected/basic.json b/recipes/engine_v2/builder.expected/basic.json
index 0ccac99..f5b771b 100644
--- a/recipes/engine_v2/builder.expected/basic.json
+++ b/recipes/engine_v2/builder.expected/basic.json
@@ -10,6 +10,18 @@
       "[CACHE]/builder/src/out"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Clobber build output"
   },
   {
@@ -25,6 +37,18 @@
       "[CACHE]/builder"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Ensure checkout cache"
   },
   {
@@ -47,13 +71,15 @@
       "--output_json",
       "/path/to/tmp/json",
       "--revision",
-      "src/flutter@HEAD"
+      "src/flutter@abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
+      "--refs",
+      "refs/heads/main"
     ],
     "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "DEPOT_TOOLS_COLLECT_METRICS": "0",
+      "DEPOT_TOOLS_REPORT_BUILD": "flutter/prod/linux-host/8945511751514863184",
       "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
       "ENGINE_PATH": "[CACHE]/builder",
       "GIT_BRANCH": "",
@@ -64,7 +90,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -82,6 +108,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Checkout source code.bot_update",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -89,18 +127,18 @@
       "@@@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\": \"HEAD\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"src/flutter\": \"abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\"@@@",
       "@@@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@      \"revision\": \"abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\"@@@",
       "@@@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\": \"abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_engine_revision_cp\": \"refs/heads/main@{#84512}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
@@ -110,7 +148,7 @@
       "@@@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@          \"revision\": \"abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
@@ -119,7 +157,7 @@
       "@@@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@\"abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\"@@@",
       "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/main@{#84512}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_revision@\"9221bca00ddbd888260084def81f09543281b952\"@@@"
     ]
@@ -135,6 +173,7 @@
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+      "DEPOT_TOOLS_REPORT_BUILD": "flutter/prod/linux-host/8945511751514863184",
       "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
       "ENGINE_PATH": "[CACHE]/builder",
       "GIT_BRANCH": "",
@@ -143,7 +182,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -159,6 +198,18 @@
         "RECIPE_REPO[depot_tools]"
       ]
     },
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Checkout source code.gclient runhooks",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@"
@@ -170,6 +221,18 @@
       "[CACHE]/builder/src/flutter/tools/gn",
       "--ios"
     ],
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "gn --ios"
   },
   {
@@ -186,6 +249,18 @@
         "RECIPE_REPO[depot_tools]"
       ]
     },
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "build ios_debug"
   },
   {
@@ -200,6 +275,18 @@
       "[CLEANUP]/out-cas-directory_tmp_1"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Copy host_debug_unopt"
   },
   {
@@ -214,6 +301,18 @@
       "/path/to/tmp/"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "read infra revision",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@infra.sha1@git_revision:mock_infra_git_revision@@@",
@@ -237,6 +336,18 @@
       "[START_DIR]/cipd_tool/infra/tools/luci/cas/git_revision%3Amock_infra_git_revision"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "install infra/tools/luci/cas.ensure package directory",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@"
@@ -256,6 +367,18 @@
       "/path/to/tmp/json"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "install infra/tools/luci/cas.ensure_installed",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -286,6 +409,18 @@
       "debug"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Archive full build for None",
     "~followup_annotations": [
       "@@@STEP_LINK@CAS UI@https://cas-viewer.appspot.com/projects/example-cas-server/instances/default_instance/blobs/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0/tree@@@"
@@ -309,7 +444,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -317,6 +452,18 @@
         "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
       ]
     },
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "dart pub get"
   },
   {
@@ -337,13 +484,25 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
         "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
       ]
     },
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "generator1"
   },
   {
@@ -364,13 +523,25 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
         "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
       ]
     },
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "test: mytest"
   },
   {
@@ -391,7 +562,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -399,6 +570,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "git rev-parse"
   },
   {
@@ -425,7 +608,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -433,6 +616,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
   },
   {
@@ -458,7 +653,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -466,6 +661,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
   },
   {
@@ -493,7 +700,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -501,6 +708,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
     "~followup_annotations": [
       "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
@@ -530,7 +749,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -538,6 +757,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Ensure /"
   },
   {
@@ -563,7 +794,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -571,6 +802,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Copy gs://flutter_archives_v2//download.flutter.io"
   },
   {
@@ -598,7 +841,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -606,6 +849,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "gsutil /download.flutter.io",
     "~followup_annotations": [
       "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
diff --git a/recipes/engine_v2/builder.expected/basic_custom_vars.json b/recipes/engine_v2/builder.expected/basic_custom_vars.json
deleted file mode 100644
index a7612a5..0000000
--- a/recipes/engine_v2/builder.expected/basic_custom_vars.json
+++ /dev/null
@@ -1,928 +0,0 @@
-[
-  {
-    "cmd": [
-      "vpython3",
-      "-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": [
-      "vpython3",
-      "-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": "Checkout source code"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
-      "--spec-path",
-      "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'src/flutter', 'url': 'https://flutter.googlesource.com/mirrors/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@HEAD"
-    ],
-    "cwd": "[CACHE]/builder",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "DEPOT_TOOLS_COLLECT_METRICS": "0",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
-      "GIT_HTTP_LOW_SPEED_TIME": "1800",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "env_suffixes": {
-      "DEPOT_TOOLS_UPDATE": [
-        "0",
-        "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\": \"HEAD\"@@@",
-      "@@@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/main@{#84512}\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@",
-      "@@@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/main@{#84512}\"@@@",
-      "@@@SET_BUILD_PROPERTY@got_revision@\"9221bca00ddbd888260084def81f09543281b952\"@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_REPO[depot_tools]/gclient.py",
-      "runhooks"
-    ],
-    "cwd": "[CACHE]/builder",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "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]",
-        "RECIPE_REPO[depot_tools]"
-      ]
-    },
-    "name": "Checkout source code.gclient runhooks",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "ensure goma"
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[CACHE]/goma/client",
-      "-ensure-file",
-      "fuchsia/third_party/goma/client/${platform} integration",
-      "-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-integration-----\", @@@",
-      "@@@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": [
-      "python3",
-      "[CACHE]/builder/src/flutter/tools/gn",
-      "--goma",
-      "--ios"
-    ],
-    "env": {
-      "GOMA_DIR": "[CACHE]/goma/client"
-    },
-    "name": "gn --ios"
-  },
-  {
-    "cmd": [],
-    "name": "setup goma"
-  },
-  {
-    "cmd": [],
-    "name": "setup goma.ensure cpython3",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "RECIPE_MODULE[fuchsia::python3]/resources/tool_manifest.json",
-      "/path/to/tmp/json"
-    ],
-    "env": {
-      "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_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
-      "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"
-    },
-    "infra_step": true,
-    "name": "setup goma.ensure cpython3.read manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
-      "@@@STEP_LOG_LINE@tool_manifest.json@  \"path\": \"path/to/cpython3\",@@@",
-      "@@@STEP_LOG_LINE@tool_manifest.json@  \"version\": \"version:pinned-version\"@@@",
-      "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
-      "@@@STEP_LOG_END@tool_manifest.json@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "setup goma.ensure cpython3.install path/to/cpython3",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "ensure-directory",
-      "--mode",
-      "0777",
-      "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version"
-    ],
-    "env": {
-      "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_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
-      "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"
-    },
-    "infra_step": true,
-    "name": "setup goma.ensure cpython3.install path/to/cpython3.ensure package directory",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@3@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version",
-      "-ensure-file",
-      "path/to/cpython3 version:pinned-version",
-      "-max-threads",
-      "0",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "env": {
-      "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_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
-      "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"
-    },
-    "infra_step": true,
-    "name": "setup goma.ensure cpython3.install path/to/cpython3.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@3@@@",
-      "@@@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-version:pinned-v\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"path/to/cpython3\"@@@",
-      "@@@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_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
-      "[CACHE]/goma/client/goma_ctl.py",
-      "restart"
-    ],
-    "env": {
-      "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_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
-      "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"
-    },
-    "infra_step": true,
-    "name": "setup goma.start goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[CACHE]/builder/src/flutter/third_party/ninja/ninja",
-      "-j",
-      "200",
-      "-C",
-      "[CACHE]/builder/src/out/ios_debug"
-    ],
-    "env": {
-      "GOMA_DIR": "[CACHE]/goma/client",
-      "GOMA_TMP_DIR": "[CLEANUP]/goma",
-      "GOMA_USE_LOCAL": "False"
-    },
-    "env_suffixes": {
-      "DEPOT_TOOLS_UPDATE": [
-        "0"
-      ],
-      "PATH": [
-        "RECIPE_REPO[depot_tools]"
-      ]
-    },
-    "name": "build ios_debug"
-  },
-  {
-    "cmd": [],
-    "name": "teardown goma"
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
-      "[CACHE]/goma/client/goma_ctl.py",
-      "jsonstatus",
-      "[CACHE]/goma/client/jsonstatus"
-    ],
-    "env": {
-      "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_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
-      "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"
-    },
-    "name": "teardown 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": [
-      "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
-      "[CACHE]/goma/client/goma_ctl.py",
-      "stat"
-    ],
-    "env": {
-      "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_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
-      "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"
-    },
-    "name": "teardown goma.goma stats",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd_tool/path/to/cpython3/version%3Apinned-version/bin/python3",
-      "[CACHE]/goma/client/goma_ctl.py",
-      "stop"
-    ],
-    "env": {
-      "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_MAX_SUM_OUTPUT_SIZE_IN_MB": "256",
-      "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"
-    },
-    "name": "teardown goma.stop goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[CLEANUP]/compiler_proxy.WARNING",
-      "/path/to/tmp/"
-    ],
-    "env": {
-      "GOMA_DIR": "[CACHE]/goma/client",
-      "GOMA_TMP_DIR": "[CLEANUP]/goma",
-      "GOMA_USE_LOCAL": "False"
-    },
-    "infra_step": true,
-    "name": "teardown 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": [
-      "vpython3",
-      "-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/"
-    ],
-    "env": {
-      "GOMA_DIR": "[CACHE]/goma/client",
-      "GOMA_TMP_DIR": "[CLEANUP]/goma",
-      "GOMA_USE_LOCAL": "False"
-    },
-    "infra_step": true,
-    "name": "teardown goma.read goma_stats.json",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copytree",
-      "[CACHE]/builder/src/out",
-      "[CLEANUP]/out-cas-directory_tmp_1"
-    ],
-    "infra_step": true,
-    "name": "Copy host_debug_unopt"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "RECIPE_MODULE[recipe_engine::cas]/resources/infra.sha1",
-      "/path/to/tmp/"
-    ],
-    "infra_step": true,
-    "name": "read infra revision",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@infra.sha1@git_revision:mock_infra_git_revision@@@",
-      "@@@STEP_LOG_END@infra.sha1@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "install infra/tools/luci/cas"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "ensure-directory",
-      "--mode",
-      "0777",
-      "[START_DIR]/cipd_tool/infra/tools/luci/cas/git_revision%3Amock_infra_git_revision"
-    ],
-    "infra_step": true,
-    "name": "install infra/tools/luci/cas.ensure package directory",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd_tool/infra/tools/luci/cas/git_revision%3Amock_infra_git_revision",
-      "-ensure-file",
-      "infra/tools/luci/cas/${platform} git_revision:mock_infra_git_revision",
-      "-max-threads",
-      "0",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "install infra/tools/luci/cas.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-git_revision:moc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/cas/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_tool/infra/tools/luci/cas/git_revision%3Amock_infra_git_revision/cas",
-      "archive",
-      "-cas-instance",
-      "projects/example-cas-server/instances/default_instance",
-      "-dump-digest",
-      "/path/to/tmp/",
-      "-paths-json",
-      "[[\"[CLEANUP]/out-cas-directory_tmp_1\", \".\"]]",
-      "-log-level",
-      "debug"
-    ],
-    "infra_step": true,
-    "name": "Archive full build for None",
-    "~followup_annotations": [
-      "@@@STEP_LINK@CAS UI@https://cas-viewer.appspot.com/projects/example-cas-server/instances/default_instance/blobs/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0/tree@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "dart",
-      "pub",
-      "get"
-    ],
-    "cwd": "[CACHE]/builder/src",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "name": "dart pub get"
-  },
-  {
-    "cmd": [
-      "[CACHE]/builder/src/script1.sh",
-      "[CACHE]/builder/src/dev/felt.dart",
-      "--argument1"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "name": "generator1"
-  },
-  {
-    "cmd": [
-      "git",
-      "rev-parse",
-      "HEAD"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "git rev-parse"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "ensure-directory",
-      "--mode",
-      "0777",
-      "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip",
-      "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
-  },
-  {
-    "cmd": [
-      "python3",
-      "-u",
-      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
-      "--",
-      "RECIPE_REPO[depot_tools]/gsutil.py",
-      "----",
-      "cp",
-      "-r",
-      "[CLEANUP]/tmp_tmp_1/*",
-      "gs://flutter_archives_v2/"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
-    "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "ensure-directory",
-      "--mode",
-      "0777",
-      "[CLEANUP]/tmp_tmp_2"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "Ensure /"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io",
-      "[CLEANUP]/tmp_tmp_2"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "Copy gs://flutter_archives_v2//download.flutter.io"
-  },
-  {
-    "cmd": [
-      "python3",
-      "-u",
-      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
-      "--",
-      "RECIPE_REPO[depot_tools]/gsutil.py",
-      "----",
-      "cp",
-      "-r",
-      "[CLEANUP]/tmp_tmp_2/*",
-      "gs://flutter_archives_v2/"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "gsutil /download.flutter.io",
-    "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "Set output properties",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@cas_output_hash@{\"android_jit_release_x86\": null, \"full_build\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}@@@"
-    ]
-  },
-  {
-    "name": "$result"
-  }
-]
\ No newline at end of file
diff --git a/recipes/engine_v2/builder.expected/basic_gcs.json b/recipes/engine_v2/builder.expected/basic_gcs.json
deleted file mode 100644
index 0ccac99..0000000
--- a/recipes/engine_v2/builder.expected/basic_gcs.json
+++ /dev/null
@@ -1,624 +0,0 @@
-[
-  {
-    "cmd": [
-      "vpython3",
-      "-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": [
-      "vpython3",
-      "-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": "Checkout source code"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
-      "--spec-path",
-      "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'src/flutter', 'url': 'https://flutter.googlesource.com/mirrors/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@HEAD"
-    ],
-    "cwd": "[CACHE]/builder",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "DEPOT_TOOLS_COLLECT_METRICS": "0",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
-      "GIT_HTTP_LOW_SPEED_TIME": "1800",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "env_suffixes": {
-      "DEPOT_TOOLS_UPDATE": [
-        "0",
-        "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\": \"HEAD\"@@@",
-      "@@@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/main@{#84512}\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@",
-      "@@@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/main@{#84512}\"@@@",
-      "@@@SET_BUILD_PROPERTY@got_revision@\"9221bca00ddbd888260084def81f09543281b952\"@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_REPO[depot_tools]/gclient.py",
-      "runhooks"
-    ],
-    "cwd": "[CACHE]/builder",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "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]",
-        "RECIPE_REPO[depot_tools]"
-      ]
-    },
-    "name": "Checkout source code.gclient runhooks",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python3",
-      "[CACHE]/builder/src/flutter/tools/gn",
-      "--ios"
-    ],
-    "name": "gn --ios"
-  },
-  {
-    "cmd": [
-      "[CACHE]/builder/src/flutter/third_party/ninja/ninja",
-      "-C",
-      "[CACHE]/builder/src/out/ios_debug"
-    ],
-    "env_suffixes": {
-      "DEPOT_TOOLS_UPDATE": [
-        "0"
-      ],
-      "PATH": [
-        "RECIPE_REPO[depot_tools]"
-      ]
-    },
-    "name": "build ios_debug"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copytree",
-      "[CACHE]/builder/src/out",
-      "[CLEANUP]/out-cas-directory_tmp_1"
-    ],
-    "infra_step": true,
-    "name": "Copy host_debug_unopt"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "RECIPE_MODULE[recipe_engine::cas]/resources/infra.sha1",
-      "/path/to/tmp/"
-    ],
-    "infra_step": true,
-    "name": "read infra revision",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@infra.sha1@git_revision:mock_infra_git_revision@@@",
-      "@@@STEP_LOG_END@infra.sha1@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "install infra/tools/luci/cas"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "ensure-directory",
-      "--mode",
-      "0777",
-      "[START_DIR]/cipd_tool/infra/tools/luci/cas/git_revision%3Amock_infra_git_revision"
-    ],
-    "infra_step": true,
-    "name": "install infra/tools/luci/cas.ensure package directory",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd_tool/infra/tools/luci/cas/git_revision%3Amock_infra_git_revision",
-      "-ensure-file",
-      "infra/tools/luci/cas/${platform} git_revision:mock_infra_git_revision",
-      "-max-threads",
-      "0",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "install infra/tools/luci/cas.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-git_revision:moc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/cas/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_tool/infra/tools/luci/cas/git_revision%3Amock_infra_git_revision/cas",
-      "archive",
-      "-cas-instance",
-      "projects/example-cas-server/instances/default_instance",
-      "-dump-digest",
-      "/path/to/tmp/",
-      "-paths-json",
-      "[[\"[CLEANUP]/out-cas-directory_tmp_1\", \".\"]]",
-      "-log-level",
-      "debug"
-    ],
-    "infra_step": true,
-    "name": "Archive full build for None",
-    "~followup_annotations": [
-      "@@@STEP_LINK@CAS UI@https://cas-viewer.appspot.com/projects/example-cas-server/instances/default_instance/blobs/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0/tree@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "dart",
-      "pub",
-      "get"
-    ],
-    "cwd": "[CACHE]/builder/src",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin",
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "name": "dart pub get"
-  },
-  {
-    "cmd": [
-      "[CACHE]/builder/src/script1.sh",
-      "[CACHE]/builder/src/dev/felt.dart",
-      "--argument1"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "name": "generator1"
-  },
-  {
-    "cmd": [
-      "[CACHE]/builder/src/myscript.sh",
-      "param1",
-      "param2"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "name": "test: mytest"
-  },
-  {
-    "cmd": [
-      "git",
-      "rev-parse",
-      "HEAD"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "git rev-parse"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "ensure-directory",
-      "--mode",
-      "0777",
-      "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip",
-      "[CLEANUP]/tmp_tmp_1/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
-  },
-  {
-    "cmd": [
-      "python3",
-      "-u",
-      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
-      "--",
-      "RECIPE_REPO[depot_tools]/gsutil.py",
-      "----",
-      "cp",
-      "-r",
-      "[CLEANUP]/tmp_tmp_1/*",
-      "gs://flutter_archives_v2/"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
-    "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "ensure-directory",
-      "--mode",
-      "0777",
-      "[CLEANUP]/tmp_tmp_2"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "Ensure /"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[CACHE]/builder/src/out/android_jit_release_x86/zip_archives/download.flutter.io",
-      "[CLEANUP]/tmp_tmp_2"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "Copy gs://flutter_archives_v2//download.flutter.io"
-  },
-  {
-    "cmd": [
-      "python3",
-      "-u",
-      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
-      "--",
-      "RECIPE_REPO[depot_tools]/gsutil.py",
-      "----",
-      "cp",
-      "-r",
-      "[CLEANUP]/tmp_tmp_2/*",
-      "gs://flutter_archives_v2/"
-    ],
-    "cwd": "[CACHE]/builder/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": ""
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "name": "gsutil /download.flutter.io",
-    "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "Set output properties",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@cas_output_hash@{\"android_jit_release_x86\": null, \"full_build\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}@@@"
-    ]
-  },
-  {
-    "name": "$result"
-  }
-]
\ No newline at end of file
diff --git a/recipes/engine_v2/builder.expected/mac.json b/recipes/engine_v2/builder.expected/mac.json
index 72a86b1..9ce736a 100644
--- a/recipes/engine_v2/builder.expected/mac.json
+++ b/recipes/engine_v2/builder.expected/mac.json
@@ -10,6 +10,18 @@
       "[CACHE]/builder/src/out"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Clobber build output"
   },
   {
@@ -25,6 +37,18 @@
       "[CACHE]/builder"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Ensure checkout cache"
   },
   {
@@ -47,13 +71,15 @@
       "--output_json",
       "/path/to/tmp/json",
       "--revision",
-      "src/flutter@HEAD"
+      "src/flutter@abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
+      "--refs",
+      "refs/heads/main"
     ],
     "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "DEPOT_TOOLS_COLLECT_METRICS": "0",
+      "DEPOT_TOOLS_REPORT_BUILD": "flutter/prod/mac-host/8945511751514863184",
       "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
       "ENGINE_PATH": "[CACHE]/builder",
       "GIT_BRANCH": "",
@@ -64,7 +90,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "darwin",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -82,6 +108,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Checkout source code.bot_update",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -89,18 +127,18 @@
       "@@@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\": \"HEAD\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"src/flutter\": \"abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\"@@@",
       "@@@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@      \"revision\": \"abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\"@@@",
       "@@@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\": \"abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_engine_revision_cp\": \"refs/heads/main@{#84512}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
@@ -110,7 +148,7 @@
       "@@@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@          \"revision\": \"abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
@@ -119,7 +157,7 @@
       "@@@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@\"abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\"@@@",
       "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/main@{#84512}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_revision@\"9221bca00ddbd888260084def81f09543281b952\"@@@"
     ]
@@ -135,6 +173,7 @@
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+      "DEPOT_TOOLS_REPORT_BUILD": "flutter/prod/mac-host/8945511751514863184",
       "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
       "ENGINE_PATH": "[CACHE]/builder",
       "GIT_BRANCH": "",
@@ -143,7 +182,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "darwin",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -159,6 +198,18 @@
         "RECIPE_REPO[depot_tools]"
       ]
     },
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Checkout source code.gclient runhooks",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@"
@@ -178,6 +229,18 @@
       "/path/to/tmp/json"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "ensure_installed",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -208,6 +271,18 @@
       "-with-runtime=True"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "install xcode"
   },
   {
@@ -217,6 +292,18 @@
       "com.apple.CoreSimulator.CoreSimulatorDevice"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "kill dart"
   },
   {
@@ -227,6 +314,18 @@
       "[CACHE]/osx_sdk/XCode.app"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "select XCode"
   },
   {
@@ -236,6 +335,18 @@
       "list"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "list simulators"
   },
   {
@@ -244,6 +355,18 @@
       "[CACHE]/builder/src/flutter/tools/gn",
       "--ios"
     ],
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "gn --ios"
   },
   {
@@ -260,6 +383,18 @@
         "RECIPE_REPO[depot_tools]"
       ]
     },
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "build ios_debug"
   },
   {
@@ -274,6 +409,18 @@
       "[CLEANUP]/out-cas-directory_tmp_1"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Copy host_debug_unopt"
   },
   {
@@ -288,6 +435,18 @@
       "/path/to/tmp/"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "read infra revision",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@infra.sha1@git_revision:mock_infra_git_revision@@@",
@@ -311,6 +470,18 @@
       "[START_DIR]/cipd_tool/infra/tools/luci/cas/git_revision%3Amock_infra_git_revision"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "install infra/tools/luci/cas.ensure package directory",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@"
@@ -330,6 +501,18 @@
       "/path/to/tmp/json"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "install infra/tools/luci/cas.ensure_installed",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -360,6 +543,18 @@
       "debug"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Archive full build for None",
     "~followup_annotations": [
       "@@@STEP_LINK@CAS UI@https://cas-viewer.appspot.com/projects/example-cas-server/instances/default_instance/blobs/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0/tree@@@"
@@ -383,7 +578,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "darwin",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -391,6 +586,18 @@
         "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
       ]
     },
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "dart pub get"
   },
   {
@@ -411,13 +618,25 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "darwin",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
         "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
       ]
     },
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "generator1"
   },
   {
@@ -438,13 +657,25 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "darwin",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
         "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
       ]
     },
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "test: mytest"
   },
   {
@@ -465,7 +696,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "darwin",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -473,6 +704,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "git rev-parse"
   },
   {
@@ -499,7 +742,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "darwin",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -507,6 +750,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Ensure flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
   },
   {
@@ -532,7 +787,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "darwin",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -540,6 +795,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Copy gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
   },
   {
@@ -567,7 +834,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "darwin",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -575,6 +842,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "gsutil flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
     "~followup_annotations": [
       "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
@@ -604,7 +883,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "darwin",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -612,6 +891,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Ensure /"
   },
   {
@@ -637,7 +928,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "darwin",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -645,6 +936,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "Copy gs://flutter_archives_v2//download.flutter.io"
   },
   {
@@ -672,7 +975,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "darwin",
-      "REVISION": ""
+      "REVISION": "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
     },
     "env_prefixes": {
       "PATH": [
@@ -680,6 +983,18 @@
       ]
     },
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "gsutil /download.flutter.io",
     "~followup_annotations": [
       "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
@@ -692,6 +1007,18 @@
       "--reset"
     ],
     "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
     "name": "reset XCode"
   },
   {
diff --git a/recipes/engine_v2/builder.expected/monorepo.json b/recipes/engine_v2/builder.expected/monorepo.json
index 1672ecf..d449b8e 100644
--- a/recipes/engine_v2/builder.expected/monorepo.json
+++ b/recipes/engine_v2/builder.expected/monorepo.json
@@ -71,7 +71,7 @@
       "--output_json",
       "/path/to/tmp/json",
       "--revision",
-      "monorepo@2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "monorepo@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
       "--refs",
       "refs/heads/main"
     ],
@@ -79,7 +79,7 @@
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/builder/8945511751514863184",
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/monorepo_builder/8945511751514863184",
       "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
       "ENGINE_PATH": "[CACHE]/builder",
       "GIT_BRANCH": "",
@@ -90,7 +90,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     },
     "env_prefixes": {
       "PATH": [
@@ -127,7 +127,7 @@
       "@@@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@    \"monorepo\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"monorepo\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
       "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
       "@@@STEP_LOG_LINE@json.output@    \"engine/src\": {@@@",
@@ -148,7 +148,7 @@
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
       "@@@STEP_LOG_LINE@json.output@    \"monorepo\": {@@@",
       "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/monorepo.git\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@    }@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
       "@@@STEP_LOG_LINE@json.output@  \"patch_failure\": false, @@@",
@@ -162,7 +162,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"got_engine_revision_cp\": \"refs/heads/main@{#14355}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision\": \"ff25d17873bba4bc564d8c7217280aa254ed4541\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision_cp\": \"refs/heads/main@{#268536}\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision_cp\": \"refs/heads/main@{#255931}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
@@ -196,7 +196,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"monorepo\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/monorepo.git\", @@@",
-      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
@@ -213,7 +213,7 @@
       "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/main@{#14355}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_flutter_revision@\"ff25d17873bba4bc564d8c7217280aa254ed4541\"@@@",
       "@@@SET_BUILD_PROPERTY@got_flutter_revision_cp@\"refs/heads/main@{#268536}\"@@@",
-      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"@@@",
       "@@@SET_BUILD_PROPERTY@got_monorepo_revision_cp@\"refs/heads/main@{#255931}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_revision@\"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@"
     ]
@@ -229,7 +229,7 @@
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/builder/8945511751514863184",
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/monorepo_builder/8945511751514863184",
       "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
       "ENGINE_PATH": "[CACHE]/builder",
       "GIT_BRANCH": "",
@@ -238,7 +238,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     },
     "env_prefixes": {
       "PATH": [
@@ -500,7 +500,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     },
     "env_prefixes": {
       "PATH": [
@@ -540,7 +540,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     },
     "env_prefixes": {
       "PATH": [
@@ -579,7 +579,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     },
     "env_prefixes": {
       "PATH": [
@@ -618,7 +618,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     },
     "env_prefixes": {
       "PATH": [
@@ -664,7 +664,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     },
     "env_prefixes": {
       "PATH": [
@@ -709,7 +709,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     },
     "env_prefixes": {
       "PATH": [
@@ -756,7 +756,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     },
     "env_prefixes": {
       "PATH": [
@@ -805,7 +805,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     },
     "env_prefixes": {
       "PATH": [
@@ -850,7 +850,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     },
     "env_prefixes": {
       "PATH": [
@@ -897,7 +897,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     },
     "env_prefixes": {
       "PATH": [
diff --git a/recipes/engine_v2/builder.expected/monorepo_gcs.json b/recipes/engine_v2/builder.expected/monorepo_tryjob.json
similarity index 69%
rename from recipes/engine_v2/builder.expected/monorepo_gcs.json
rename to recipes/engine_v2/builder.expected/monorepo_tryjob.json
index 1672ecf..f7cade8 100644
--- a/recipes/engine_v2/builder.expected/monorepo_gcs.json
+++ b/recipes/engine_v2/builder.expected/monorepo_tryjob.json
@@ -58,10 +58,92 @@
   {
     "cmd": [
       "vpython3",
+      "RECIPE_REPO[depot_tools]/gerrit_client.py",
+      "changes",
+      "--host",
+      "https://dart-review.googlesource.com",
+      "--json_file",
+      "/path/to/tmp/json",
+      "--limit",
+      "1",
+      "-p",
+      "change=9425",
+      "-o",
+      "ALL_REVISIONS",
+      "-o",
+      "DOWNLOAD_COMMANDS"
+    ],
+    "cwd": "[CACHE]/builder",
+    "env": {
+      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
+      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
+      "ENGINE_PATH": "[CACHE]/builder",
+      "GIT_BRANCH": "",
+      "LUCI_BRANCH": "",
+      "LUCI_CI": "True",
+      "LUCI_PR": "",
+      "LUCI_WORKDIR": "[START_DIR]",
+      "OS": "linux",
+      "PATH": "<PATH>:RECIPE_REPO[depot_tools]",
+      "REVISION": ""
+    },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+      ]
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Checkout source code.gerrit fetch current CL info",
+    "timeout": 60,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"branch\": \"main\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"owner\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"John Doe\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"revisions\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"184ebe53805e102605d11f6b143486d15c23a09c\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"_number\": \"3\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"ref\": \"refs/changes/25/9425/3\"@@@",
+      "@@@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": [
+      "vpython3",
       "-u",
       "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
       "--spec-path",
       "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'monorepo', 'url': 'https://dart.googlesource.com/monorepo'}]",
+      "--patch_root",
+      "monorepo",
       "--revision_mapping_file",
       "{\"got_buildroot_revision\": \"engine/src\", \"got_dart_revision\": \"engine/src/third_party/dart\", \"got_engine_revision\": \"engine/src/flutter\", \"got_flutter_revision\": \"flutter\", \"got_monorepo_revision\": \"monorepo\"}",
       "--git-cache-dir",
@@ -70,8 +152,10 @@
       "[CLEANUP]/bot_update",
       "--output_json",
       "/path/to/tmp/json",
+      "--patch_ref",
+      "https://dart.googlesource.com/sdk@refs/heads/main:refs/changes/25/9425/3",
       "--revision",
-      "monorepo@2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "monorepo@refs/heads/main",
       "--refs",
       "refs/heads/main"
     ],
@@ -79,7 +163,7 @@
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/builder/8945511751514863184",
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/host-linux/8945511751514863184",
       "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
       "ENGINE_PATH": "[CACHE]/builder",
       "GIT_BRANCH": "",
@@ -90,7 +174,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": ""
     },
     "env_prefixes": {
       "PATH": [
@@ -127,7 +211,7 @@
       "@@@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@    \"monorepo\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"monorepo\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
       "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
       "@@@STEP_LOG_LINE@json.output@    \"engine/src\": {@@@",
@@ -148,7 +232,7 @@
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
       "@@@STEP_LOG_LINE@json.output@    \"monorepo\": {@@@",
       "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/monorepo.git\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2f4f1bacc7a19d77be7c7c6c32043cfb27d448dc\"@@@",
       "@@@STEP_LOG_LINE@json.output@    }@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
       "@@@STEP_LOG_LINE@json.output@  \"patch_failure\": false, @@@",
@@ -162,7 +246,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"got_engine_revision_cp\": \"refs/heads/main@{#14355}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision\": \"ff25d17873bba4bc564d8c7217280aa254ed4541\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_flutter_revision_cp\": \"refs/heads/main@{#268536}\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision\": \"2f4f1bacc7a19d77be7c7c6c32043cfb27d448dc\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_monorepo_revision_cp\": \"refs/heads/main@{#255931}\", @@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@",
       "@@@STEP_LOG_LINE@json.output@  }, @@@",
@@ -196,7 +280,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"monorepo\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/monorepo.git\", @@@",
-      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2f4f1bacc7a19d77be7c7c6c32043cfb27d448dc\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
@@ -213,7 +297,7 @@
       "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/main@{#14355}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_flutter_revision@\"ff25d17873bba4bc564d8c7217280aa254ed4541\"@@@",
       "@@@SET_BUILD_PROPERTY@got_flutter_revision_cp@\"refs/heads/main@{#268536}\"@@@",
-      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_monorepo_revision@\"2f4f1bacc7a19d77be7c7c6c32043cfb27d448dc\"@@@",
       "@@@SET_BUILD_PROPERTY@got_monorepo_revision_cp@\"refs/heads/main@{#255931}\"@@@",
       "@@@SET_BUILD_PROPERTY@got_revision@\"46cec4dbb087a7b43490e8c82b6899fa32937bd9\"@@@"
     ]
@@ -229,7 +313,7 @@
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/builder/8945511751514863184",
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci.sandbox/host-linux/8945511751514863184",
       "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
       "ENGINE_PATH": "[CACHE]/builder",
       "GIT_BRANCH": "",
@@ -238,7 +322,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": ""
     },
     "env_prefixes": {
       "PATH": [
@@ -500,7 +584,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": ""
     },
     "env_prefixes": {
       "PATH": [
@@ -540,7 +624,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": ""
     },
     "env_prefixes": {
       "PATH": [
@@ -579,7 +663,7 @@
       "LUCI_PR": "",
       "LUCI_WORKDIR": "[START_DIR]",
       "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+      "REVISION": ""
     },
     "env_prefixes": {
       "PATH": [
@@ -601,328 +685,6 @@
     "name": "test: mytest"
   },
   {
-    "cmd": [
-      "git",
-      "rev-parse",
-      "HEAD"
-    ],
-    "cwd": "[CACHE]/builder/engine/src/../../monorepo",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "luci_context": {
-      "realm": {
-        "name": "dart:ci.sandbox"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "git rev-parse"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "ensure-directory",
-      "--mode",
-      "0777",
-      "[CLEANUP]/tmp_tmp_1/monorepo/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
-    ],
-    "cwd": "[CACHE]/builder/engine/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "luci_context": {
-      "realm": {
-        "name": "dart:ci.sandbox"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "Ensure monorepo/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip",
-      "[CLEANUP]/tmp_tmp_1/monorepo/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release"
-    ],
-    "cwd": "[CACHE]/builder/engine/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "luci_context": {
-      "realm": {
-        "name": "dart:ci.sandbox"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "Copy gs://flutter_archives_v2/monorepo/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip"
-  },
-  {
-    "cmd": [
-      "python3",
-      "-u",
-      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
-      "--",
-      "RECIPE_REPO[depot_tools]/gsutil.py",
-      "----",
-      "cp",
-      "-r",
-      "[CLEANUP]/tmp_tmp_1/*",
-      "gs://flutter_archives_v2/"
-    ],
-    "cwd": "[CACHE]/builder/engine/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "luci_context": {
-      "realm": {
-        "name": "dart:ci.sandbox"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "gsutil monorepo/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
-    "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "ensure-directory",
-      "--mode",
-      "0777",
-      "[CLEANUP]/tmp_tmp_2/monorepo"
-    ],
-    "cwd": "[CACHE]/builder/engine/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "luci_context": {
-      "realm": {
-        "name": "dart:ci.sandbox"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "Ensure monorepo"
-  },
-  {
-    "cmd": [
-      "vpython3",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io",
-      "[CLEANUP]/tmp_tmp_2/monorepo"
-    ],
-    "cwd": "[CACHE]/builder/engine/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "luci_context": {
-      "realm": {
-        "name": "dart:ci.sandbox"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "Copy gs://flutter_archives_v2/monorepo//download.flutter.io"
-  },
-  {
-    "cmd": [
-      "python3",
-      "-u",
-      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
-      "--",
-      "RECIPE_REPO[depot_tools]/gsutil.py",
-      "----",
-      "cp",
-      "-r",
-      "[CLEANUP]/tmp_tmp_2/*",
-      "gs://flutter_archives_v2/"
-    ],
-    "cwd": "[CACHE]/builder/engine/src/flutter",
-    "env": {
-      "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
-      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
-      "ENGINE_CHECKOUT_PATH": "[CACHE]/builder",
-      "ENGINE_PATH": "[CACHE]/builder",
-      "GIT_BRANCH": "",
-      "LUCI_BRANCH": "",
-      "LUCI_CI": "True",
-      "LUCI_PR": "",
-      "LUCI_WORKDIR": "[START_DIR]",
-      "OS": "linux",
-      "REVISION": "2d72510e447ab60a9728aeea2362d8be2cbd7789"
-    },
-    "env_prefixes": {
-      "PATH": [
-        "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
-      ]
-    },
-    "infra_step": true,
-    "luci_context": {
-      "realm": {
-        "name": "dart:ci.sandbox"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "gsutil monorepo//download.flutter.io",
-    "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "Set output properties",
     "~followup_annotations": [
diff --git a/recipes/engine_v2/builder.py b/recipes/engine_v2/builder.py
index b29b123..0b0ddf1 100644
--- a/recipes/engine_v2/builder.py
+++ b/recipes/engine_v2/builder.py
@@ -37,9 +37,10 @@
 DEPS = [
     'depot_tools/gsutil',
     'flutter/archives',
-    'flutter/flutter_bcid',
     'flutter/build_util',
+    'flutter/flutter_bcid',
     'flutter/flutter_deps',
+    'flutter/monorepo',
     'flutter/os_utils',
     'flutter/osx_sdk',
     'flutter/repo_util',
@@ -134,11 +135,11 @@
 def Archive(api, checkout,  archive_config):
   paths = api.archives.engine_v2_gcs_paths(checkout, archive_config)
   for path in paths:
-      api.archives.upload_artifact(path.local, path.remote)
-      api.flutter_bcid.upload_provenance(
-          path.local,
-          path.remote
-      )
+    api.archives.upload_artifact(path.local, path.remote)
+    api.flutter_bcid.upload_provenance(
+        path.local,
+        path.remote
+    )
 
 def RunSteps(api, properties, env_properties):
   api.flutter_bcid.report_stage('start')
@@ -156,7 +157,7 @@
   env['ENGINE_PATH'] = api.path['cache'].join('builder')
 
   api.flutter_bcid.report_stage('fetch')
-  if api.buildbucket.gitiles_commit.project == 'monorepo':
+  if api.monorepo.is_monorepo_ci_build or api.monorepo.is_monorepo_try_build:
     api.repo_util.monorepo_checkout(cache_root, env, env_prefixes)
     checkout = api.path['cache'].join('builder', 'engine', 'src')
   else:
@@ -203,22 +204,43 @@
       ]
   }
   yield api.test(
-     'basic',
-     api.properties(build=build, no_goma=True),
-  )
-  yield api.test(
-      'mac', api.properties(build=build, no_goma=True),
-      api.platform('mac', 64),
-  )
-  yield api.test(
-      'monorepo', api.properties(build=build, no_goma=True),
+      'basic',
+      api.properties(build=build, no_goma=True),
       api.buildbucket.ci_build(
-          project='dart',
-          bucket='ci.sandbox',
-          git_repo='https://dart.googlesource.com/monorepo',
-          git_ref='refs/heads/main'
+          project='flutter',
+          bucket='prod',
+          builder='linux-host',
+          git_repo='https://flutter.googlesource.com/mirrors/engine',
+          git_ref='refs/heads/main',
+          revision='abcd' * 10,
+          build_number=123,
       ),
   )
+  yield api.test(
+      'mac',
+      api.properties(build=build, no_goma=True),
+      api.platform('mac', 64),
+      api.buildbucket.ci_build(
+          project='flutter',
+          bucket='prod',
+          builder='mac-host',
+          git_repo='https://flutter.googlesource.com/mirrors/engine',
+          git_ref='refs/heads/main',
+          revision='abcd' * 10,
+          build_number=123,
+      ),
+  )
+  yield api.test(
+      'monorepo',
+      api.properties(build=build, no_goma=True),
+      api.monorepo.ci_build(),
+  )
+  yield api.test(
+      'monorepo_tryjob',
+      api.properties(build=build, no_goma=True),
+      api.monorepo.try_build(),
+  )
+
   build_custom = dict(build)
   build_custom["gclient_variables"] = {"example_custom_var": True}
   build_custom["tests"] = []
@@ -228,37 +250,6 @@
           project='dart-internal',
           bucket='flutter',
           git_repo='https://flutter.googlesource.com/mirrors/engine',
-          git_ref='refs/heads/main'
-      ),
-  )
-  build_custom = dict(build)
-  build_custom["gclient_custom_vars"] = {"example_custom_var": True}
-  build_custom["tests"] = []
-  yield api.test(
-      'basic_custom_vars', api.properties(build=build_custom)
-  )
-  # gcs archives
-  build_gcs = copy.deepcopy(build)
-  build_gcs['archives'][0]['type'] = 'gcs'
-  yield api.test(
-      'basic_gcs', api.properties(build=build_gcs, no_goma=True),
-      api.step_data(
-          'git rev-parse',
-          stdout=api.raw_io
-          .output_text('12345abcde12345abcde12345abcde12345abcde\n')
-      )
-  )
-  yield api.test(
-      'monorepo_gcs', api.properties(build=build_gcs, no_goma=True, clobber=False),
-      api.buildbucket.ci_build(
-          project='dart',
-          bucket='ci.sandbox',
-          git_repo='https://dart.googlesource.com/monorepo',
           git_ref='refs/heads/main',
       ),
-      api.step_data(
-          'git rev-parse',
-          stdout=api.raw_io
-          .output_text('12345abcde12345abcde12345abcde12345abcde\n')
-      )
   )
diff --git a/recipes/engine_v2/engine_v2.expected/monorepo_linux.json b/recipes/engine_v2/engine_v2.expected/monorepo_try.json
similarity index 83%
rename from recipes/engine_v2/engine_v2.expected/monorepo_linux.json
rename to recipes/engine_v2/engine_v2.expected/monorepo_try.json
index bc66b83..b595513 100644
--- a/recipes/engine_v2/engine_v2.expected/monorepo_linux.json
+++ b/recipes/engine_v2/engine_v2.expected/monorepo_try.json
@@ -13,7 +13,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "dart:try"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -24,7 +24,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"dart\"}, \"exe\": {\"cipdVersion\": \"refs/heads/main\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gerritChanges\": [{\"change\": \"123456\", \"host\": \"dart-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"monorepo\"}], \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"monorepo\", \"ref\": \"refs/heads/main\"}, \"priority\": 25, \"properties\": {\"build\": {\"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}}, \"environment\": \"Staging\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci.sandbox\", \"builder\": \"Linux Engine Drone-try\", \"project\": \"dart\"}, \"exe\": {\"cipdVersion\": \"refs/heads/main\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gerritChanges\": [{\"change\": \"9425\", \"host\": \"dart-review.googlesource.com\", \"patchset\": \"3\", \"project\": \"sdk\"}], \"priority\": 25, \"properties\": {\"build\": {\"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}}, \"builder_name_suffix\": \"-try\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -47,8 +47,8 @@
       "@@@STEP_LOG_LINE@request@    {@@@",
       "@@@STEP_LOG_LINE@request@      \"scheduleBuild\": {@@@",
       "@@@STEP_LOG_LINE@request@        \"builder\": {@@@",
-      "@@@STEP_LOG_LINE@request@          \"bucket\": \"try\", @@@",
-      "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
+      "@@@STEP_LOG_LINE@request@          \"bucket\": \"ci.sandbox\", @@@",
+      "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone-try\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"dart\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
@@ -61,18 +61,12 @@
       "@@@STEP_LOG_LINE@request@        \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", @@@",
       "@@@STEP_LOG_LINE@request@        \"gerritChanges\": [@@@",
       "@@@STEP_LOG_LINE@request@          {@@@",
-      "@@@STEP_LOG_LINE@request@            \"change\": \"123456\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"change\": \"9425\", @@@",
       "@@@STEP_LOG_LINE@request@            \"host\": \"dart-review.googlesource.com\", @@@",
-      "@@@STEP_LOG_LINE@request@            \"patchset\": \"7\", @@@",
-      "@@@STEP_LOG_LINE@request@            \"project\": \"monorepo\"@@@",
+      "@@@STEP_LOG_LINE@request@            \"patchset\": \"3\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"project\": \"sdk\"@@@",
       "@@@STEP_LOG_LINE@request@          }@@@",
       "@@@STEP_LOG_LINE@request@        ], @@@",
-      "@@@STEP_LOG_LINE@request@        \"gitilesCommit\": {@@@",
-      "@@@STEP_LOG_LINE@request@          \"host\": \"dart.googlesource.com\", @@@",
-      "@@@STEP_LOG_LINE@request@          \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", @@@",
-      "@@@STEP_LOG_LINE@request@          \"project\": \"monorepo\", @@@",
-      "@@@STEP_LOG_LINE@request@          \"ref\": \"refs/heads/main\"@@@",
-      "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"priority\": 25, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"build\": {@@@",
@@ -91,7 +85,7 @@
       "@@@STEP_LOG_LINE@request@              \"targets\": []@@@",
       "@@@STEP_LOG_LINE@request@            }@@@",
       "@@@STEP_LOG_LINE@request@          }, @@@",
-      "@@@STEP_LOG_LINE@request@          \"environment\": \"Staging\", @@@",
+      "@@@STEP_LOG_LINE@request@          \"builder_name_suffix\": \"-try\", @@@",
       "@@@STEP_LOG_LINE@request@          \"gclient_variables\": {}, @@@",
       "@@@STEP_LOG_LINE@request@          \"recipe\": \"engine_v2/builder\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -145,7 +139,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "dart:try"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
@@ -171,7 +165,7 @@
     "infra_step": true,
     "luci_context": {
       "realm": {
-        "name": "dart:try"
+        "name": "dart:ci.sandbox"
       },
       "resultdb": {
         "current_invocation": {
diff --git a/recipes/engine_v2/engine_v2.py b/recipes/engine_v2/engine_v2.py
index 5723a11..4f91914 100644
--- a/recipes/engine_v2/engine_v2.py
+++ b/recipes/engine_v2/engine_v2.py
@@ -27,9 +27,10 @@
 
 DEPS = [
     'flutter/archives',
-    'flutter/flutter_bcid',
     'flutter/display_util',
+    'flutter/flutter_bcid',
     'flutter/flutter_deps',
+    'flutter/monorepo',
     'flutter/repo_util',
     'flutter/osx_sdk',
     'flutter/shard_util_v2',
@@ -58,7 +59,7 @@
   checkout_path = None
   if config_name:
     # Read builds configuration from repository under test.
-    if api.buildbucket.gitiles_commit.project == 'monorepo':
+    if api.monorepo.is_monorepo_ci_build or api.monorepo.is_monorepo_try_build:
       project = 'monorepo'
     else:
       project = 'engine'
@@ -95,7 +96,7 @@
 
   current_branch = 'main'
   if checkout_path and api.repo_util.is_release_candidate_branch(checkout_path):
-    current_branch = api.repo_util.release_candidate_branch(checkout_path) 
+    current_branch = api.repo_util.release_candidate_branch(checkout_path)
   with api.step.nest('launch builds') as presentation:
     tasks = api.shard_util_v2.schedule_builds(builds, presentation,
                                               branch=current_branch)
@@ -321,16 +322,10 @@
   )
 
   yield api.test(
-      'monorepo_linux',
+      'monorepo_try',
       api.platform.name('linux'),
-      api.properties(builds=builds, environment='Staging'),
-      api.buildbucket.try_build(
-          project='dart',
-          builder='try-builder',
-          git_repo='https://dart.googlesource.com/monorepo',
-          revision='a' * 40,
-          build_number=123,
-      ),
+      api.properties(builds=builds, builder_name_suffix='-try'),
+      api.monorepo.try_build(),
       api.shard_util_v2.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step="launch builds",
@@ -341,29 +336,19 @@
   yield api.test(
       'monorepo_config_file',
       api.platform.name('linux'),
-      api.properties(
-          config_name='config_name',
-          builds=builds),
-      api.buildbucket.ci_build(
-          project='dart',
-          bucket='ci.sandbox',
-          builder='monorepo_builder',
-          git_repo='https://dart.googlesource.com/monorepo',
-          git_ref='refs/heads/main',
-          revision='a' * 40,
-          build_number=123,
-      ),
+      api.properties(config_name='config_name', builds=builds),
+      api.monorepo.ci_build(),
       api.shard_util_v2.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step="launch builds",
           collect_step="collect builds",
       ),
       api.step_data(
-          'Read build config file',
-          api.file.read_json({'builds': builds})
+          'Read build config file', api.file.read_json({'builds': builds})
       ),
       api.step_data(
           'Identify branches.git branch',
-          stdout=api.raw_io.output_text('branch1\nbranch2\nflutter-3.2-candidate.5')
+          stdout=api.raw_io
+          .output_text('branch1\nbranch2\nflutter-3.2-candidate.5')
       ),
   )