Revert "[fuchsia] Move common setup code from recipes to fuchsia recipe_module."

This reverts commit b50c67b9667cbe1bd251b1f406db5c0fa58bf91e.

Reason for revert: purple everywhere

Original change's description:
> [fuchsia] Move common setup code from recipes to fuchsia recipe_module.
> 
> Change-Id: I40fdcbcfc1f15c2be9fde353aea88bbdcf8fb8af
> Reviewed-on: https://fuchsia-review.googlesource.com/c/infra/recipes/+/377874
> Commit-Queue: Ina Huh <ihuh@google.com>
> Reviewed-by: Oliver Newman <olivernewman@google.com>

TBR=joshuaseaton@google.com,ihuh@google.com,olivernewman@google.com

Change-Id: Id2aadc99067d6511a77ec23344b11aee7b72c698
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://fuchsia-review.googlesource.com/c/infra/recipes/+/378014
Reviewed-by: Nicolas Sylvain <nsylvain@google.com>
Commit-Queue: Nicolas Sylvain <nsylvain@google.com>
diff --git a/recipe_modules/fuchsia/__init__.py b/recipe_modules/fuchsia/__init__.py
index 8638360..8742e8b 100644
--- a/recipe_modules/fuchsia/__init__.py
+++ b/recipe_modules/fuchsia/__init__.py
@@ -1,10 +1,4 @@
-# Copyright 2018 The Fuchsia 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 = [
-    'fuchsia/build_input_resolver',
-    'fuchsia/spec',
     'fuchsia/status_check',
     'recipe_engine/buildbucket',
     'recipe_engine/properties',
diff --git a/recipe_modules/fuchsia/api.py b/recipe_modules/fuchsia/api.py
index 17d1a8a..2dd676e 100644
--- a/recipe_modules/fuchsia/api.py
+++ b/recipe_modules/fuchsia/api.py
@@ -1,57 +1,10 @@
 # Copyright 2018 The Fuchsia 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 google.protobuf import text_format
-
 from recipe_engine import recipe_api
 
-from PB.infra.fuchsia import Fuchsia
-
 
 class FuchsiaApi(recipe_api.RecipeApi):
   """APIs for checking out, building, and testing Fuchsia."""
 
-  def setup_with_spec(self, spec_remote, spec_revision=None):
-    """Runs the steps required before checking out Fuchsia code from a spec.
-
-    These steps include resolving the build input gitiles commit and loading
-    the specified spec.
-
-    Returns the spec and spec_revision.
-    """
-    # Resolve the build input to always contain a Gitiles commit.
-    self.m.build_input_resolver.resolve(
-        default_project_url='https://fuchsia.googlesource.com/fuchsia')
-    bb_input = self.m.buildbucket.build_input
-    commit_remote = 'https://%s/%s' % (bb_input.gitiles_commit.host,
-                                       bb_input.gitiles_commit.project)
-    if commit_remote == spec_remote:
-      # If there was no parent build, then spec_revision may not have been
-      # resolved, so use the revision that we resolved immediately above.
-      if spec_revision == 'HEAD':
-        spec_revision = bb_input.gitiles_commit.id
-      # Otherwise the spec_revision was specified by the parent, and we want all
-      # accesses to that remote to use that revision. In this case,
-      # build_input_resolver.resolve() is unnecessary since we overwrite the
-      # revision, but we only use it to pre-populate the gitiles_commit of the
-      # build input and to keep the conditional logic simpler.
-      else:
-        bb_input.gitiles_commit.id = spec_revision
-
-    with self.m.step.nest('load spec') as presentation:
-      try:
-        spec, spec_revision = self.m.spec.get_spec_revision(
-            spec_remote=spec_remote,
-            Type=Fuchsia,
-            spec_revision=spec_revision,
-        )
-      except self.m.spec.ParseError as e:
-        raise self.m.step.StepFailure('failed to parse spec: %s' % str(e))
-
-      presentation.logs['textproto'] = text_format.MessageToString(spec).split(
-          '\n')
-      # The artifacts tool relies on this output property.
-      # This design has been fragile. Please don't add more dependencies on any
-      # additional output properties.
-      presentation.properties['gcs_bucket'] = spec.gcs_bucket
-      return spec, spec_revision
+  pass
diff --git a/recipe_modules/fuchsia/examples/fuchsia.expected/basic.json b/recipe_modules/fuchsia/examples/fuchsia.expected/basic.json
new file mode 100644
index 0000000..b6042b6
--- /dev/null
+++ b/recipe_modules/fuchsia/examples/fuchsia.expected/basic.json
@@ -0,0 +1,5 @@
+[
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipe_modules/fuchsia/examples/fuchsia.expected/default.json b/recipe_modules/fuchsia/examples/fuchsia.expected/default.json
deleted file mode 100644
index 1d7d984..0000000
--- a/recipe_modules/fuchsia/examples/fuchsia.expected/default.json
+++ /dev/null
@@ -1,97 +0,0 @@
-[
-  {
-    "cmd": [],
-    "name": "load spec",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@textproto@checkout {@@@",
-      "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  remote: \"https://fuchsia.googlesource.com/manifest\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  upload_results: true@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@build {@@@",
-      "@@@STEP_LOG_LINE@textproto@  build_type: \"debug\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  board: \"boards/x64.gni\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  product: \"products/core.gni\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  run_tests: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  target: \"x64\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  upload_results: true@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@test {@@@",
-      "@@@STEP_LOG_LINE@textproto@  device_type: \"QEMU\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  pave: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  pool: \"fuchsia.tests\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
-      "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
-      "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
-      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  targets_serial: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  target_shard_duration_secs: 600@@@",
-      "@@@STEP_LOG_LINE@textproto@  max_shards_per_env: 8@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@gcs_bucket: \"fuchsia-infra\"@@@",
-      "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
-      "@@@STEP_LOG_LINE@textproto@@@@",
-      "@@@STEP_LOG_END@textproto@@@",
-      "@@@SET_BUILD_PROPERTY@gcs_bucket@\"fuchsia-infra\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "load spec.ensure build_init",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/build_init",
-      "-ensure-file",
-      "fuchsia/infra/build_init/${platform} git_revision:bd277978791e1e35bf76e0df57f6aef14aef0757",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "load spec.ensure build_init.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:bd2\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/infra/build_init/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/build_init/build_init",
-      "-spec_remote",
-      "https://fuchsia.googlesource.com/integration",
-      "-spec_path",
-      "infra/config/generated/project/specs/ci/builder.textproto",
-      "-spec_ref",
-      "HEAD"
-    ],
-    "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
-    "infra_step": true,
-    "name": "load spec.build_init",
-    "stdin": "CNDsgNmu8bWSfBIWCgdwcm9qZWN0EgJjaRoHYnVpbGRlciIvdXNlcjpsdWNpLXNjaGVkdWxlckBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20yBgi5wqLYBXpjEmEKGWNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20SB3Byb2plY3QaKDJkNzI1MTBlNDQ3YWI2MGE5NzI4YWVlYTIzNjJkOGJlMmNiZDc3ODkiEXJlZnMvaGVhZHMvbWFzdGVykgEEEgIgHg==",
-    "timeout": 600,
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "name": "$result"
-  }
-]
\ No newline at end of file
diff --git a/recipe_modules/fuchsia/examples/fuchsia.expected/setup_with_spec_revision.json b/recipe_modules/fuchsia/examples/fuchsia.expected/setup_with_spec_revision.json
deleted file mode 100644
index ba2a251..0000000
--- a/recipe_modules/fuchsia/examples/fuchsia.expected/setup_with_spec_revision.json
+++ /dev/null
@@ -1,97 +0,0 @@
-[
-  {
-    "cmd": [],
-    "name": "load spec",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@textproto@checkout {@@@",
-      "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  remote: \"https://fuchsia.googlesource.com/manifest\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  upload_results: true@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@build {@@@",
-      "@@@STEP_LOG_LINE@textproto@  build_type: \"debug\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  board: \"boards/x64.gni\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  product: \"products/core.gni\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  run_tests: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  target: \"x64\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  upload_results: true@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@test {@@@",
-      "@@@STEP_LOG_LINE@textproto@  device_type: \"QEMU\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  pave: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  pool: \"fuchsia.tests\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
-      "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
-      "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
-      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  targets_serial: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  target_shard_duration_secs: 600@@@",
-      "@@@STEP_LOG_LINE@textproto@  max_shards_per_env: 8@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@gcs_bucket: \"fuchsia-infra\"@@@",
-      "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
-      "@@@STEP_LOG_LINE@textproto@@@@",
-      "@@@STEP_LOG_END@textproto@@@",
-      "@@@SET_BUILD_PROPERTY@gcs_bucket@\"fuchsia-infra\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "load spec.ensure build_init",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/build_init",
-      "-ensure-file",
-      "fuchsia/infra/build_init/${platform} git_revision:bd277978791e1e35bf76e0df57f6aef14aef0757",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "load spec.ensure build_init.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:bd2\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/infra/build_init/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/build_init/build_init",
-      "-spec_remote",
-      "https://fuchsia.googlesource.com/integration",
-      "-spec_path",
-      "infra/config/generated/project/specs/ci/builder.textproto",
-      "-spec_ref",
-      "deadbeef"
-    ],
-    "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
-    "infra_step": true,
-    "name": "load spec.build_init",
-    "stdin": "CNDsgNmu8bWSfBIWCgdwcm9qZWN0EgJjaRoHYnVpbGRlciIvdXNlcjpsdWNpLXNjaGVkdWxlckBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20yBgi5wqLYBXpjEmEKGWNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20SB3Byb2plY3QaKDJkNzI1MTBlNDQ3YWI2MGE5NzI4YWVlYTIzNjJkOGJlMmNiZDc3ODkiEXJlZnMvaGVhZHMvbWFzdGVykgEEEgIgHg==",
-    "timeout": 600,
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "name": "$result"
-  }
-]
\ No newline at end of file
diff --git a/recipe_modules/fuchsia/examples/fuchsia.expected/spec_remote_cq.json b/recipe_modules/fuchsia/examples/fuchsia.expected/spec_remote_cq.json
deleted file mode 100644
index fa8eac0..0000000
--- a/recipe_modules/fuchsia/examples/fuchsia.expected/spec_remote_cq.json
+++ /dev/null
@@ -1,196 +0,0 @@
-[
-  {
-    "cmd": [],
-    "name": "ensure gerrit"
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/gerrit",
-      "-ensure-file",
-      "infra/tools/luci/gerrit/${platform} latest",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "ensure gerrit.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-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gerrit/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/gerrit/gerrit",
-      "change-detail",
-      "-host",
-      "https://fuchsia-review.googlesource.com",
-      "-input",
-      "{\"change_id\": \"123456\"}",
-      "-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "get_gerrit_details",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"branch\": \"master\"@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "ensure gitiles"
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/gitiles",
-      "-ensure-file",
-      "infra/tools/luci/gitiles/${platform} latest",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "ensure gitiles.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-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gitiles/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/gitiles/gitiles",
-      "refs",
-      "-json-output",
-      "/path/to/tmp/json",
-      "https://fuchsia.googlesource.com/integration",
-      "refs/heads"
-    ],
-    "infra_step": true,
-    "name": "refs",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"refs/heads/master\": \"deadbeef\"@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "load spec",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@textproto@checkout {@@@",
-      "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  remote: \"https://fuchsia.googlesource.com/manifest\"@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@build {@@@",
-      "@@@STEP_LOG_LINE@textproto@  build_type: \"debug\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  board: \"boards/x64.gni\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  product: \"products/core.gni\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  run_tests: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  target: \"x64\"@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@test {@@@",
-      "@@@STEP_LOG_LINE@textproto@  device_type: \"QEMU\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  pave: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  pool: \"fuchsia.tests\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
-      "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
-      "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
-      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  targets_serial: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  target_shard_duration_secs: 600@@@",
-      "@@@STEP_LOG_LINE@textproto@  max_shards_per_env: 8@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
-      "@@@STEP_LOG_LINE@textproto@@@@",
-      "@@@STEP_LOG_END@textproto@@@",
-      "@@@SET_BUILD_PROPERTY@gcs_bucket@\"\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "load spec.ensure build_init",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/build_init",
-      "-ensure-file",
-      "fuchsia/infra/build_init/${platform} git_revision:bd277978791e1e35bf76e0df57f6aef14aef0757",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "load spec.ensure build_init.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:bd2\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/infra/build_init/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/build_init/build_init",
-      "-spec_remote",
-      "https://fuchsia.googlesource.com/integration",
-      "-spec_path",
-      "infra/config/generated/project/specs/try/builder.textproto",
-      "-spec_ref",
-      "deadbeef"
-    ],
-    "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
-    "infra_step": true,
-    "name": "load spec.build_init",
-    "stdin": "CNDsgNmu8bWSfBIXCgdwcm9qZWN0EgN0cnkaB2J1aWxkZXIiHHVzZXI6Y29tbWl0LWJvdEBjaHJvbWl1bS5vcmcyBgi5wqLYBXp8EkQKGGZ1Y2hzaWEuZ29vZ2xlc291cmNlLmNvbRILaW50ZWdyYXRpb24aCGRlYWRiZWVmIhFyZWZzL2hlYWRzL21hc3Rlcho0Ch9mdWNoc2lhLXJldmlldy5nb29nbGVzb3VyY2UuY29tEgtpbnRlZ3JhdGlvbhjAxAcgB5IBBBICIB6aARgKD2NxX2V4cGVyaW1lbnRhbBIFZmFsc2U=",
-    "timeout": 600,
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "name": "$result"
-  }
-]
\ No newline at end of file
diff --git a/recipe_modules/fuchsia/examples/fuchsia.expected/spec_remote_cq_with_spec_revision.json b/recipe_modules/fuchsia/examples/fuchsia.expected/spec_remote_cq_with_spec_revision.json
deleted file mode 100644
index e4ef057..0000000
--- a/recipe_modules/fuchsia/examples/fuchsia.expected/spec_remote_cq_with_spec_revision.json
+++ /dev/null
@@ -1,196 +0,0 @@
-[
-  {
-    "cmd": [],
-    "name": "ensure gerrit"
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/gerrit",
-      "-ensure-file",
-      "infra/tools/luci/gerrit/${platform} latest",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "ensure gerrit.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-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gerrit/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/gerrit/gerrit",
-      "change-detail",
-      "-host",
-      "https://fuchsia-review.googlesource.com",
-      "-input",
-      "{\"change_id\": \"123456\"}",
-      "-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "get_gerrit_details",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"branch\": \"master\"@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "ensure gitiles"
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/gitiles",
-      "-ensure-file",
-      "infra/tools/luci/gitiles/${platform} latest",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "ensure gitiles.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-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gitiles/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/gitiles/gitiles",
-      "refs",
-      "-json-output",
-      "/path/to/tmp/json",
-      "https://fuchsia.googlesource.com/integration",
-      "refs/heads"
-    ],
-    "infra_step": true,
-    "name": "refs",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"refs/heads/master\": \"deadbeef\"@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "load spec",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@textproto@checkout {@@@",
-      "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  remote: \"https://fuchsia.googlesource.com/manifest\"@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@build {@@@",
-      "@@@STEP_LOG_LINE@textproto@  build_type: \"debug\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  board: \"boards/x64.gni\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  product: \"products/core.gni\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  run_tests: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  target: \"x64\"@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@test {@@@",
-      "@@@STEP_LOG_LINE@textproto@  device_type: \"QEMU\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  pave: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  pool: \"fuchsia.tests\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
-      "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
-      "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
-      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  targets_serial: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  target_shard_duration_secs: 600@@@",
-      "@@@STEP_LOG_LINE@textproto@  max_shards_per_env: 8@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
-      "@@@STEP_LOG_LINE@textproto@@@@",
-      "@@@STEP_LOG_END@textproto@@@",
-      "@@@SET_BUILD_PROPERTY@gcs_bucket@\"\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "load spec.ensure build_init",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/build_init",
-      "-ensure-file",
-      "fuchsia/infra/build_init/${platform} git_revision:bd277978791e1e35bf76e0df57f6aef14aef0757",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "load spec.ensure build_init.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:bd2\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/infra/build_init/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/build_init/build_init",
-      "-spec_remote",
-      "https://fuchsia.googlesource.com/integration",
-      "-spec_path",
-      "infra/config/generated/project/specs/try/builder.textproto",
-      "-spec_ref",
-      "deadbeef2"
-    ],
-    "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
-    "infra_step": true,
-    "name": "load spec.build_init",
-    "stdin": "CNDsgNmu8bWSfBIXCgdwcm9qZWN0EgN0cnkaB2J1aWxkZXIiHHVzZXI6Y29tbWl0LWJvdEBjaHJvbWl1bS5vcmcyBgi5wqLYBXp9EkUKGGZ1Y2hzaWEuZ29vZ2xlc291cmNlLmNvbRILaW50ZWdyYXRpb24aCWRlYWRiZWVmMiIRcmVmcy9oZWFkcy9tYXN0ZXIaNAofZnVjaHNpYS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbRILaW50ZWdyYXRpb24YwMQHIAeSAQQSAiAemgEYCg9jcV9leHBlcmltZW50YWwSBWZhbHNl",
-    "timeout": 600,
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "name": "$result"
-  }
-]
\ No newline at end of file
diff --git a/recipe_modules/fuchsia/examples/fuchsia.py b/recipe_modules/fuchsia/examples/fuchsia.py
index 1f88de3..fa01820 100644
--- a/recipe_modules/fuchsia/examples/fuchsia.py
+++ b/recipe_modules/fuchsia/examples/fuchsia.py
@@ -2,121 +2,14 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-from PB.infra.fuchsia import Fuchsia
-from recipe_engine.recipe_api import Property
-
-DEPS = [
-    'fuchsia/build_input_resolver',
-    'fuchsia/fuchsia',
-    'fuchsia/gitiles',
-    'fuchsia/spec',
-    'fuchsia/status_check',
-    'recipe_engine/buildbucket',
-    'recipe_engine/properties',
-]
-
-PROPERTIES = {
-    'spec_remote':
-        Property(
-            kind=str,
-            help='URL of the specs git repository',
-            default='https://fuchsia.googlesource.com/integration'),
-    'spec_revision':
-        Property(
-            kind=str,
-            help='The revision of spec_remote to fetch',
-            default='HEAD'),
-}
+# Must keep this file or else recipe engine complains that FuchsiaApi has no
+# test coverage.
 
 
-def RunSteps(api, spec_remote, spec_revision):
-  api.fuchsia.setup_with_spec(spec_remote, spec_revision)
+# pylint:disable=unused-argument
+def RunSteps(api):
+  pass
 
 
 def GenTests(api):
-
-  def spec_data(use_snapshot=False,
-                build_type='debug',
-                ninja_targets=(),
-                sdk_subbuild=False,
-                variants=(),
-                device_type='QEMU',
-                enforce_size_limits=False,
-                run_tests=True,
-                test_in_shards=True,
-                gcs_bucket=None,
-                pave=True):
-    test_spec = None
-    if run_tests:
-      test_spec = Fuchsia.Test(
-          device_type=device_type,
-          max_shard_size=0,
-          target_shard_duration_secs=10 * 60,
-          max_shards_per_env=8,
-          timeout_secs=30 * 60,
-          pool='fuchsia.tests',
-          test_in_shards=test_in_shards,
-          swarming_expiration_timeout_secs=10 * 60,
-          swarming_io_timeout_secs=5 * 60,
-          default_service_account='service_account',
-          targets_serial=True,
-          pave=pave,
-      )
-
-    spec = Fuchsia(
-        checkout=Fuchsia.Checkout(
-            manifest='minimal',
-            project='integration',
-            remote='https://fuchsia.googlesource.com/manifest',
-            upload_results=bool(gcs_bucket),
-            use_snapshot=use_snapshot,
-        ),
-        build=Fuchsia.Build(
-            variants=variants,
-            build_type=build_type,
-            run_tests=run_tests,
-            ninja_targets=ninja_targets,
-            sdk_subbuild=sdk_subbuild,
-            board='boards/x64.gni',
-            product='products/core.gni',
-            target='x64',
-            include_breakpad_symbols=False,
-            enforce_size_limits=enforce_size_limits,
-            upload_results=bool(gcs_bucket),
-        ),
-        test=test_spec,
-        gcs_bucket=gcs_bucket,
-        artifact_gcs_bucket='fuchsia-infra-artifacts',
-    )
-    return api.spec.spec_loaded_ok(
-        step_name='load spec.build_init', message=spec)
-
-  default_gitiles_refs_steps = api.gitiles.refs('refs', [
-      'refs/heads/master',
-      'deadbeef',
-  ])
-
-  spec_remote = 'https://fuchsia.googlesource.com/integration'
-
-  yield (api.test('default') + api.buildbucket.ci_build() +
-         spec_data(gcs_bucket='fuchsia-infra', run_tests=True))
-
-  yield (api.test('setup_with_spec_revision') + api.buildbucket.ci_build() +
-         spec_data(gcs_bucket='fuchsia-infra', run_tests=True) +
-         api.properties(spec_revision='deadbeef'))
-
-  yield (api.test('spec_remote_cq') + spec_data(run_tests=True) +
-         api.buildbucket.try_build(git_repo=spec_remote) +
-         api.build_input_resolver.set_gerrit_branch('master') +
-         default_gitiles_refs_steps + api.properties(spec_remote=spec_remote))
-
-  yield (api.test('spec_remote_cq_with_spec_revision') +
-         spec_data(run_tests=True) +
-         api.buildbucket.try_build(git_repo=spec_remote) +
-         api.build_input_resolver.set_gerrit_branch('master') +
-         default_gitiles_refs_steps +
-         api.properties(spec_remote=spec_remote, spec_revision='deadbeef2'))
-
-  yield (api.status_check.test('spec_parse_error', status='failure') +
-         api.buildbucket.ci_build() +
-         api.spec.spec_parse_error(step_name='load spec.build_init'))
+  yield api.test('basic')
diff --git a/recipes/fuchsia/build.expected/build_type_release_not_run_tests.json b/recipes/fuchsia/build.expected/build_type_release_not_run_tests.json
index b0bafbb..c787528 100644
--- a/recipes/fuchsia/build.expected/build_type_release_not_run_tests.json
+++ b/recipes/fuchsia/build.expected/build_type_release_not_run_tests.json
@@ -1,8 +1,16 @@
 [
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
+      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -80,13 +88,6 @@
   },
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/check_sizes_fails.json b/recipes/fuchsia/build.expected/check_sizes_fails.json
index 50289a9..eb9a981 100644
--- a/recipes/fuchsia/build.expected/check_sizes_fails.json
+++ b/recipes/fuchsia/build.expected/check_sizes_fails.json
@@ -1,8 +1,16 @@
 [
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
+      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -93,13 +101,6 @@
   },
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/default.json b/recipes/fuchsia/build.expected/default.json
index eccd616..184efe9 100644
--- a/recipes/fuchsia/build.expected/default.json
+++ b/recipes/fuchsia/build.expected/default.json
@@ -1,8 +1,16 @@
 [
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
+      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -93,13 +101,6 @@
   },
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/default_cq.json b/recipes/fuchsia/build.expected/default_cq.json
index 2316991..19de18d 100644
--- a/recipes/fuchsia/build.expected/default_cq.json
+++ b/recipes/fuchsia/build.expected/default_cq.json
@@ -103,8 +103,16 @@
   },
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
+      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -192,13 +200,6 @@
   },
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/non_numeric_parent_id.json b/recipes/fuchsia/build.expected/non_numeric_parent_id.json
index 705a823..2bf6d82 100644
--- a/recipes/fuchsia/build.expected/non_numeric_parent_id.json
+++ b/recipes/fuchsia/build.expected/non_numeric_parent_id.json
@@ -1,8 +1,16 @@
 [
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
+      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -93,13 +101,6 @@
   },
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/not_test_in_shards.json b/recipes/fuchsia/build.expected/not_test_in_shards.json
index b3e5d90..622a729 100644
--- a/recipes/fuchsia/build.expected/not_test_in_shards.json
+++ b/recipes/fuchsia/build.expected/not_test_in_shards.json
@@ -1,8 +1,16 @@
 [
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
+      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -89,13 +97,6 @@
   },
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/sdk.json b/recipes/fuchsia/build.expected/sdk.json
index 6983d98..01c28dd 100644
--- a/recipes/fuchsia/build.expected/sdk.json
+++ b/recipes/fuchsia/build.expected/sdk.json
@@ -1,8 +1,16 @@
 [
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
+      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -79,13 +87,6 @@
   },
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipe_modules/fuchsia/examples/fuchsia.expected/spec_parse_error.json b/recipes/fuchsia/build.expected/spec_parse_error.json
similarity index 77%
rename from recipe_modules/fuchsia/examples/fuchsia.expected/spec_parse_error.json
rename to recipes/fuchsia/build.expected/spec_parse_error.json
index 3338c41..d2e0147 100644
--- a/recipe_modules/fuchsia/examples/fuchsia.expected/spec_parse_error.json
+++ b/recipes/fuchsia/build.expected/spec_parse_error.json
@@ -1,8 +1,16 @@
 [
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
+      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_FAILURE@@@"
     ]
   },
@@ -47,14 +55,14 @@
       "-spec_remote",
       "https://fuchsia.googlesource.com/integration",
       "-spec_path",
-      "infra/config/generated/project/specs/ci/builder.textproto",
+      "infra/config/generated/garnet/specs/ci/builder.textproto",
       "-spec_ref",
       "HEAD"
     ],
     "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
     "infra_step": true,
     "name": "load spec.build_init",
-    "stdin": "CNDsgNmu8bWSfBIWCgdwcm9qZWN0EgJjaRoHYnVpbGRlciIvdXNlcjpsdWNpLXNjaGVkdWxlckBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20yBgi5wqLYBXpjEmEKGWNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20SB3Byb2plY3QaKDJkNzI1MTBlNDQ3YWI2MGE5NzI4YWVlYTIzNjJkOGJlMmNiZDc3ODkiEXJlZnMvaGVhZHMvbWFzdGVykgEEEgIgHg==",
+    "stdin": "CNDsgNmu8bWSfBIVCgZnYXJuZXQSAmNpGgdidWlsZGVyIi91c2VyOmx1Y2ktc2NoZWR1bGVyQGFwcHNwb3QuZ3NlcnZpY2VhY2NvdW50LmNvbTIGCLnCotgFemESXwoYZnVjaHNpYS5nb29nbGVzb3VyY2UuY29tEgZnYXJuZXQaKDJkNzI1MTBlNDQ3YWI2MGE5NzI4YWVlYTIzNjJkOGJlMmNiZDc3ODkiEXJlZnMvaGVhZHMvbWFzdGVykgEEEgIgHg==",
     "timeout": 600,
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipes/fuchsia/build.expected/spec_remote_cq.json b/recipes/fuchsia/build.expected/spec_remote_cq.json
new file mode 100644
index 0000000..1336c3b
--- /dev/null
+++ b/recipes/fuchsia/build.expected/spec_remote_cq.json
@@ -0,0 +1,2635 @@
+[
+  {
+    "cmd": [],
+    "name": "ensure gerrit"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gerrit",
+      "-ensure-file",
+      "infra/tools/luci/gerrit/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure gerrit.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-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gerrit/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/gerrit/gerrit",
+      "change-detail",
+      "-host",
+      "https://fuchsia-review.googlesource.com",
+      "-input",
+      "{\"change_id\": \"123456\"}",
+      "-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "get_gerrit_details",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"branch\": \"master\"@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "ensure gitiles"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gitiles",
+      "-ensure-file",
+      "infra/tools/luci/gitiles/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure gitiles.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-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gitiles/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/gitiles/gitiles",
+      "refs",
+      "-json-output",
+      "/path/to/tmp/json",
+      "https://fuchsia.googlesource.com/integration",
+      "refs/heads"
+    ],
+    "infra_step": true,
+    "name": "refs",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"refs/heads/master\": \"deadbeef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "load spec",
+    "~followup_annotations": [
+      "@@@STEP_TEXT@loading spec@@@",
+      "@@@STEP_LOG_LINE@textproto@checkout {@@@",
+      "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  remote: \"https://fuchsia.googlesource.com/manifest\"@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@build {@@@",
+      "@@@STEP_LOG_LINE@textproto@  build_type: \"debug\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  board: \"boards/x64.gni\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  product: \"products/core.gni\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  run_tests: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  target: \"x64\"@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@test {@@@",
+      "@@@STEP_LOG_LINE@textproto@  device_type: \"QEMU\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  pool: \"fuchsia.tests\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
+      "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  targets_serial: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  target_shard_duration_secs: 600@@@",
+      "@@@STEP_LOG_LINE@textproto@  max_shards_per_env: 8@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
+      "@@@STEP_LOG_LINE@textproto@@@@",
+      "@@@STEP_LOG_END@textproto@@@",
+      "@@@SET_BUILD_PROPERTY@gcs_bucket@\"\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "load spec.ensure build_init",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/build_init",
+      "-ensure-file",
+      "fuchsia/infra/build_init/${platform} git_revision:bd277978791e1e35bf76e0df57f6aef14aef0757",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "load spec.ensure build_init.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:bd2\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/infra/build_init/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/build_init/build_init",
+      "-spec_remote",
+      "https://fuchsia.googlesource.com/integration",
+      "-spec_path",
+      "infra/config/generated/project/specs/try/builder.textproto",
+      "-spec_ref",
+      "deadbeef"
+    ],
+    "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
+    "infra_step": true,
+    "name": "load spec.build_init",
+    "stdin": "CNDsgNmu8bWSfBIXCgdwcm9qZWN0EgN0cnkaB2J1aWxkZXIiHHVzZXI6Y29tbWl0LWJvdEBjaHJvbWl1bS5vcmcyBgi5wqLYBXp8EkQKGGZ1Y2hzaWEuZ29vZ2xlc291cmNlLmNvbRILaW50ZWdyYXRpb24aCGRlYWRiZWVmIhFyZWZzL2hlYWRzL21hc3Rlcho0Ch9mdWNoc2lhLXJldmlldy5nb29nbGVzb3VyY2UuY29tEgtpbnRlZ3JhdGlvbhjAxAcgB5IBBBICIB6aARgKD2NxX2V4cGVyaW1lbnRhbBIFZmFsc2U=",
+    "timeout": 600,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "checkout"
+  },
+  {
+    "cmd": [],
+    "name": "checkout.ensure jiri",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/jiri",
+      "-ensure-file",
+      "fuchsia/tools/jiri/${platform} git_revision:0cbbddb6bfe904d236a9a533f7b0e6be8f335120",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "checkout.ensure jiri.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:0cb\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/tools/jiri/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/jiri/jiri",
+      "init",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-analytics-opt=false",
+      "-rewrite-sso-to-https=true",
+      "-cache",
+      "[CACHE]/git",
+      "[START_DIR]/fuchsia"
+    ],
+    "name": "checkout.jiri init",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gerrit/gerrit",
+      "change-detail",
+      "-host",
+      "https://fuchsia-review.googlesource.com",
+      "-input",
+      "{\"change_id\": \"integration~123456\", \"params\": {\"o\": [\"ALL_REVISIONS\"]}}",
+      "-output",
+      "/path/to/tmp/json"
+    ],
+    "name": "checkout.get change details",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"branch\": \"master\", @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"revisions\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"a1b2c3\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"_number\": 7, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"ref\": \"refs/changes/00/100/7\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"d4e5f6\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"_number\": 3, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"ref\": \"refs/changes/00/100/3\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"g7h8i9\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"_number\": 9, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"ref\": \"refs/changes/00/100/9\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "import",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-name",
+      "integration",
+      "-remote-branch",
+      "master",
+      "minimal",
+      "https://fuchsia.googlesource.com/manifest"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri import",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "update",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-autoupdate=false",
+      "-attempts=3",
+      "-run-hooks=false",
+      "-fetch-packages=false"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri update",
+    "timeout": 1800,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "patch",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-host",
+      "https://fuchsia-review.googlesource.com",
+      "-project",
+      "integration",
+      "-rebase=true",
+      "refs/changes/00/100/7"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri patch",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "update",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-autoupdate=false",
+      "-attempts=3",
+      "-gc=true",
+      "-rebase-tracked",
+      "-local-manifest=true",
+      "-run-hooks=false",
+      "-fetch-packages=false"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri update (2)",
+    "timeout": 1800,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "run-hooks",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-attempts=3",
+      "-local-manifest=true"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri run-hooks",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "fetch-packages",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-attempts=3",
+      "-local-manifest=true"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri fetch-packages",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "source-manifest",
+      "-vv",
+      "-time",
+      "-j=50",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri source-manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@{@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@  \"directories\": {@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@    \"manifest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@      \"git_checkout\": {@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@        \"repo_url\": \"https://fuchsia.googlesource.com/manifest\", @@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@        \"revision\": \"4c2b0da3c06341db5cebe4d02c78c93c3b2bd78b\"@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@      }@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@    }@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@  }@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@}@@@",
+      "@@@STEP_LOG_END@json.output[source manifest]@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "snapshot",
+      "-vv",
+      "-time",
+      "-j=50",
+      "[CLEANUP]/jiri.snapshot"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "infra_step": true,
+    "name": "checkout.jiri snapshot",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/jiri.snapshot",
+      "/path/to/tmp/"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "infra_step": true,
+    "name": "checkout.read snapshot",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_END@jiri.snapshot@@@",
+      "@@@STEP_LOG_LINE@snapshot_contents@@@@",
+      "@@@STEP_LOG_END@snapshot_contents@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "test multipliers"
+  },
+  {
+    "cmd": [
+      "git",
+      "show",
+      "HEAD",
+      "--format=%B",
+      "--no-patch"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "test multipliers.get commit msg",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@commit message@[foo] bar@@@",
+      "@@@STEP_LOG_LINE@commit message@baz@@@",
+      "@@@STEP_LOG_END@commit message@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "test multipliers.extract",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@value@[]@@@",
+      "@@@STEP_LOG_END@value@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[]",
+      "[CLEANUP]/tmp_tmp_2"
+    ],
+    "infra_step": true,
+    "name": "test multipliers.write",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@tmp_tmp_2@[]@@@",
+      "@@@STEP_LOG_END@tmp_tmp_2@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "validate checkout"
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "project",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-json-output",
+      "/path/to/tmp/json",
+      "integration"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "validate checkout.jiri project",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"branches\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"(HEAD detached at c22471f)\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"current_branch\": \"\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"integration\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"path/to/integration\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"remote\": \"https://fuchsia.googlesource.com/integration\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"revision\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[START_DIR]/fuchsia/scripts/style/verify-fidl-libraries.py",
+      "--repo",
+      "path/to/integration"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "validate checkout.validate FIDL namespaces",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build"
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ensure goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/goma/client",
+      "-ensure-file",
+      "infra_internal/goma/client/${platform} release",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ensure goma.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-release---------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra_internal/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": [
+      "[START_DIR]/fuchsia/prebuilt/third_party/gn/linux-x64/gn",
+      "gen",
+      "[START_DIR]/fuchsia/out/default",
+      "--check",
+      "--args=import(\"//boards/x64.gni\")  import(\"//products/core.gni\")  build_info_board=\"x64\" build_info_product=\"core\" goma_dir=\"[CACHE]/goma/client\" is_debug=true target_cpu=\"x64\" test_durations_file=\"integration/infra/test_durations/builder.json\" universe_package_labels+=[\"//bundles:infratools\"] use_goma=true"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "build.build fuchsia.gn gen",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/fuchsia/out/default/zircon.json",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "build.build fuchsia.read zircon ninja instructions",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"dir\": \"../default.zircon\", @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"targets\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"legacy-host_tests\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"manifest-$cpu\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  ]@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/fuchsia/out/default/images.json",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.read image manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--boot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--zircona\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-a\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fuchsia.zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"storage-full\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fvm.blk\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"storage-sparse\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fvm.sparse.blk\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--efi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"efi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fuchsia.esp.blk\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_netboot\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--boot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"netboot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"netboot.zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"archive\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"build-archive.tgz\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"tgz\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"archive\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"build-archive.zip\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zip\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"qemu-kernel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"multiboot.bin\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"kernel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbol-archive\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"symbol-archive.tgz\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"tgz\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--zircon-r\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-r\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"zircon-r.zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave_zedboot\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--zircona\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-r\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"zedboot.zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/fuchsia/out/default/tool_paths.json",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.read tool_paths manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/linux_x64/bazel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/linux_x64/cargo\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/linux_x64/clang-doc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/linux_x64/clang-format-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/linux_x64/clang-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/linux_x64/clang-tidy-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/linux_x64/clang-tidy\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/linux_x64/dart\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/linux_x64/dartfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/linux_x64/gn\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/linux_x64/go\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/linux_x64/gofmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/linux_x64/llvm-cov\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/linux_x64/llvm-profdata\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/linux_x64/ninja\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/linux_x64/rustc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/linux_x64/rustdoc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/linux_x64/rustfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/linux_x64/yapf\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/bootserver\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fidl-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fidl-lint\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/minfs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/artifactory\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/bootserver_new\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/botanist\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/covargs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/debroot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/ninjatrace\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/seriallistener\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/size_checker\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/symbolize\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/testrunner\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/testsharder\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/linux_arm64/bazel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/linux_arm64/cargo\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/linux_arm64/clang-doc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/linux_arm64/clang-format-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/linux_arm64/clang-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/linux_arm64/clang-tidy-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/linux_arm64/clang-tidy\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/linux_arm64/dart\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/linux_arm64/dartfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/linux_arm64/gn\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/linux_arm64/go\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/linux_arm64/gofmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/linux_arm64/llvm-cov\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/linux_arm64/llvm-profdata\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/linux_arm64/llvm-symbolizer\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/linux_arm64/ninja\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/linux_arm64/rustc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/linux_arm64/rustdoc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/linux_arm64/rustfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/linux_arm64/yapf\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/bootserver\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fidl-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fidl-lint\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/minfs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/artifactory\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/bootserver_new\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/botanist\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/covargs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/debroot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/ninjatrace\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/seriallistener\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/size_checker\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/symbolize\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/testrunner\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/testsharder\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/mac_x64/bazel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/mac_x64/cargo\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/mac_x64/clang-doc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/mac_x64/clang-format-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/mac_x64/clang-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/mac_x64/clang-tidy-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/mac_x64/clang-tidy\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/mac_x64/dart\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/mac_x64/dartfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/mac_x64/gn\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/mac_x64/go\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/mac_x64/gofmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/mac_x64/llvm-cov\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/mac_x64/llvm-profdata\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/mac_x64/llvm-symbolizer\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/mac_x64/ninja\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/mac_x64/rustc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/mac_x64/rustdoc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/mac_x64/rustfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/mac_x64/yapf\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/bootserver\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fidl-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fidl-lint\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/minfs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/artifactory\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/bootserver_new\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/botanist\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/covargs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/debroot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/ninjatrace\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/seriallistener\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/size_checker\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/symbolize\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/testrunner\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/testsharder\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/mac_arm64/bazel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/mac_arm64/cargo\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/mac_arm64/clang-doc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/mac_arm64/clang-format-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/mac_arm64/clang-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/mac_arm64/clang-tidy-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/mac_arm64/clang-tidy\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/mac_arm64/dart\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/mac_arm64/dartfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/mac_arm64/gn\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/mac_arm64/go\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/mac_arm64/gofmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/mac_arm64/llvm-cov\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/mac_arm64/llvm-profdata\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/mac_arm64/llvm-symbolizer\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/mac_arm64/ninja\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/mac_arm64/rustc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/mac_arm64/rustdoc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/mac_arm64/rustfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/mac_arm64/yapf\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/bootserver\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fidl-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fidl-lint\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/minfs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/artifactory\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/bootserver_new\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/botanist\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/covargs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/debroot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/ninjatrace\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/seriallistener\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/size_checker\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/symbolize\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/testrunner\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/testsharder\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/fuchsia/out/default/tests.json",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.read test spec manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"test\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"label\": \"//public/lib/foo:foo_tests(//some/toolchain)\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"foo_tests\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"path\": \"path/on/disk/to/test\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"test\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"label\": \"//lib/bar:bar_unittests(//some/toolchain)\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"bar_unittests\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"os\": \"fuchsia\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"path\": \"path/on/fuchsia/to/test\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/fuchsia/out/default/prebuilt_binaries.json",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.read prebuilt binary manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"manifest\": \"gen/prebuilt_binary_manifest.json\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"prebuilt_binaries\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ninja",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ninja.pre_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "<LUCI_CONTEXT>",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.ninja.pre_goma.read context",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "{\"local_auth\": {\"accounts\": [{\"email\": \"some@example.com\", \"id\": \"test\"}], \"default_account_id\": \"system\"}}",
+      "[CLEANUP]/luci_context._tmp_3"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.pre_goma.write context",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@luci_context._tmp_3@{\"local_auth\": {\"accounts\": [{\"email\": \"some@example.com\", \"id\": \"test\"}], \"default_account_id\": \"system\"}}@@@",
+      "@@@STEP_LOG_END@luci_context._tmp_3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[CACHE]/goma/client/goma_ctl.py",
+      "restart"
+    ],
+    "env": {
+      "GOMA_CACHE_DIR": "[CACHE]/goma",
+      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+      "GOMA_PING_TIMEOUT_SEC": "100",
+      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
+    },
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.pre_goma.start_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[fuchsia::ninja]/resources/ninja_wrapper.py",
+      "--ninja_info_output",
+      "/path/to/tmp/json",
+      "--failure_output",
+      "/path/to/tmp/",
+      "--",
+      "[START_DIR]/fuchsia/prebuilt/third_party/ninja/linux_x64/ninja",
+      "-C",
+      "[START_DIR]/fuchsia/out/default.zircon",
+      "-j",
+      "80",
+      "legacy-host_tests",
+      "manifest-$cpu"
+    ],
+    "name": "build.build fuchsia.ninja.zircon",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[fuchsia::ninja]/resources/ninja_wrapper.py",
+      "--ninja_info_output",
+      "/path/to/tmp/json",
+      "--failure_output",
+      "/path/to/tmp/",
+      "--",
+      "[START_DIR]/fuchsia/prebuilt/third_party/ninja/linux_x64/ninja",
+      "-C",
+      "[START_DIR]/fuchsia/out/default",
+      "-j",
+      "80",
+      "build/images:record_filesystem_sizes",
+      "build/images:system_snapshot",
+      "build/images:updates",
+      "bundles:infratools",
+      "fuchsia.esp.blk",
+      "fuchsia.zbi",
+      "fvm.blk",
+      "fvm.sparse.blk",
+      "gen/prebuilt_binary_manifest.json",
+      "ids.txt",
+      "multiboot.bin",
+      "path/on/disk/to/test",
+      "zedboot.zbi",
+      "zircon-r.zbi"
+    ],
+    "name": "build.build fuchsia.ninja.fuchsia",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ninja.post_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[CACHE]/goma/client/goma_ctl.py",
+      "jsonstatus",
+      "[CACHE]/goma/client/jsonstatus"
+    ],
+    "env": {
+      "GOMA_CACHE_DIR": "[CACHE]/goma",
+      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
+    },
+    "name": "build.build fuchsia.ninja.post_goma.goma_jsonstatus",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"notice\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"infra_status\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"num_user_error\": 0, @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"ping_status_code\": 200@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  ]@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[CACHE]/goma/client/goma_ctl.py",
+      "stat"
+    ],
+    "env": {
+      "GOMA_CACHE_DIR": "[CACHE]/goma",
+      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
+    },
+    "name": "build.build fuchsia.ninja.post_goma.goma_stats",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[CACHE]/goma/client/goma_ctl.py",
+      "stop"
+    ],
+    "env": {
+      "GOMA_CACHE_DIR": "[CACHE]/goma",
+      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
+    },
+    "name": "build.build fuchsia.ninja.post_goma.stop_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CACHE]/goma/client/goma_stats.json",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.post_goma.read goma_stats.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+      "@@@STEP_LOG_END@goma_stats.json@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "{\"build_info\": {\"build_id\": 8945511751514863184, \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"builder\": \"builder\", \"time_stamp_int\": 1337000003000}}",
+      "[CACHE]/goma/client/goma_stats.json"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.post_goma.write goma_stats.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"builder\": \"builder\", \"time_stamp_int\": 1337000003000}}@@@",
+      "@@@STEP_LOG_END@goma_stats.json@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"build_info\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"build_id\": 8945511751514863184, @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"builder\": \"builder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"time_stamp_int\": 1337000003000@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ninja.post_goma.ensure bqupload",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/bqupload",
+      "-ensure-file",
+      "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.post_goma.ensure bqupload.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@5@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/bqupload/bqupload",
+      "fuchsia-infra.artifacts.builds_beta_goma",
+      "[CACHE]/goma/client/goma_stats.json"
+    ],
+    "name": "build.build fuchsia.ninja.post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/fuchsia/out/default.zircon/host-linux-x64/fvm",
+      "[START_DIR]/fuchsia/out/default/fvm.blk",
+      "extend",
+      "--length",
+      "10000000000"
+    ],
+    "name": "build.build fuchsia.fvm.blk extend",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/fuchsia/out/default/linux_x64/size_checker",
+      "--build-dir",
+      "[START_DIR]/fuchsia/out/default",
+      "--sizes-json-out",
+      "/path/to/tmp/json"
+    ],
+    "name": "check sizes",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"some-file\": 123@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@SET_BUILD_PROPERTY@binary_sizes@{\"some-file\": 123}@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "bb",
+      "batch",
+      "-host",
+      "cr-buildbucket.appspot.com"
+    ],
+    "infra_step": true,
+    "name": "buildbucket.get",
+    "stdin": "{\"requests\": [{\"getBuild\": {\"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"id\": \"8945511751514863184\"}}]}",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"getBuild\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"id\": \"8945511751514863184\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"status\": \"SUCCESS\"@@@",
+      "@@@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@@@",
+      "@@@STEP_LOG_LINE@request@{@@@",
+      "@@@STEP_LOG_LINE@request@  \"requests\": [@@@",
+      "@@@STEP_LOG_LINE@request@    {@@@",
+      "@@@STEP_LOG_LINE@request@      \"getBuild\": {@@@",
+      "@@@STEP_LOG_LINE@request@        \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", @@@",
+      "@@@STEP_LOG_LINE@request@        \"id\": \"8945511751514863184\"@@@",
+      "@@@STEP_LOG_LINE@request@      }@@@",
+      "@@@STEP_LOG_LINE@request@    }@@@",
+      "@@@STEP_LOG_LINE@request@  ]@@@",
+      "@@@STEP_LOG_LINE@request@}@@@",
+      "@@@STEP_LOG_END@request@@@",
+      "@@@STEP_LINK@8945511751514863184@https://cr-buildbucket.appspot.com/build/8945511751514863184@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/fuchsia/out/default/linux_x64/testsharder",
+      "-build-dir",
+      "[START_DIR]/fuchsia/out/default",
+      "-output-file",
+      "/path/to/tmp/json",
+      "-target-duration-secs",
+      "600",
+      "-max-shards-per-env",
+      "8",
+      "-multipliers",
+      "[CLEANUP]/tmp_tmp_2"
+    ],
+    "name": "create test shards",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"deps\": [], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"environment\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"dimensions\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"device_type\": \"Khadas Vim2 Max\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"Vim2\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"tests\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"install_path\": \"host_x64/path/to/test\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"label\": \"//path/to/test:test(//toolchain)\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"name\": \"test\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"path\": \"host_x64/path/to/test\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "shard Vim2"
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[\n  {\n    \"path\": \"host_x64/path/to/test\", \n    \"os\": \"linux\", \n    \"name\": \"test\", \n    \"install_path\": \"host_x64/path/to/test\", \n    \"label\": \"//path/to/test:test(//toolchain)\"\n  }\n]",
+      "[CLEANUP]/isolate_tmp_4/tests.json"
+    ],
+    "infra_step": true,
+    "name": "shard Vim2.write test manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@tests.json@[@@@",
+      "@@@STEP_LOG_LINE@tests.json@  {@@@",
+      "@@@STEP_LOG_LINE@tests.json@    \"path\": \"host_x64/path/to/test\", @@@",
+      "@@@STEP_LOG_LINE@tests.json@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@tests.json@    \"name\": \"test\", @@@",
+      "@@@STEP_LOG_LINE@tests.json@    \"install_path\": \"host_x64/path/to/test\", @@@",
+      "@@@STEP_LOG_LINE@tests.json@    \"label\": \"//path/to/test:test(//toolchain)\"@@@",
+      "@@@STEP_LOG_LINE@tests.json@  }@@@",
+      "@@@STEP_LOG_LINE@tests.json@]@@@",
+      "@@@STEP_LOG_END@tests.json@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
+      "--link-json",
+      "{\"[START_DIR]/fuchsia/out/default/host_x64/path/to/test\": [\"[CLEANUP]/isolate_tmp_4/host_x64/path/to/test\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
+    ],
+    "infra_step": true,
+    "name": "shard Vim2.create tree of build artifacts",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "shard Vim2.ensure isolated",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/isolated_client",
+      "-ensure-file",
+      "infra/tools/luci/isolated/${platform} git_revision:305e79001db1846906c7136d90a863bee5bd3bfc",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "shard Vim2.ensure isolated.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:305\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/isolated/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": [
+      "[CACHE]/isolated_client/isolated",
+      "archive",
+      "-verbose",
+      "-isolate-server",
+      "https://example.isolateserver.appspot.com",
+      "-namespace",
+      "default-gzip",
+      "-dump-hash",
+      "/path/to/tmp/",
+      "-dirs",
+      "[CLEANUP]/isolate_tmp_4:."
+    ],
+    "infra_step": true,
+    "name": "shard Vim2.isolate build artifacts",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@isolated UI@https://example.isolateserver.appspot.com/browse?namespace=default-gzip&hash=%5Bdummy+hash%5D@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "isolate test orchestration inputs"
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"serial.txt\", \n            \"syslog.txt\", \n            \"out\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"cipd_input\": {\n            \"packages\": [\n              {\n                \"path\": \".\", \n                \"version\": \"latest\", \n                \"package_name\": \"infra/tools/luci-auth/${platform}\"\n              }, \n              {\n                \"path\": \".\", \n                \"version\": \"git_revision:12ba48e4eea05053e01e834502042a8c710bdc99\", \n                \"package_name\": \"fuchsia/infra/catalyst/${platform}\"\n              }\n            ]\n          }, \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"1\", \n              \"key\": \"serial\"\n            }, \n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./luci-auth\", \n            \"context\", \n            \"--\", \n            \"./catalyst\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", \n            \"-bootserver\", \n            \"./bootserver_new\", \n            \"-config\", \n            \"/etc/catalyst/config.json\", \n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/builds/8945511751514863184/packages/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-out-dir\", \n            \"out\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/zedboot.zbi\", \n              \"key\": \"CATALYST_ZIRCONA_PATH\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"fuchsia.googlesource.com\", \n              \"key\": \"INPUT_COMMIT_HOST\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"integration\", \n              \"key\": \"INPUT_COMMIT_PROJECT\"\n            }, \n            {\n              \"value\": \"refs/heads/master\", \n              \"key\": \"INPUT_COMMIT_REF\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"0\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"service_account\", \n    \"tags\": [\n      \"board:boards/x64.gni\", \n      \"build_type:debug\", \n      \"product:products/core.gni\", \n      \"shard_version:23030ea165c1ae2c1734a5998c2efc7ac000231c499611d2f126832d4349666d\", \n      \"task_name:Vim2\", \n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
+      "[CLEANUP]/test-orchestration-inputs_tmp_5/task_requests.json"
+    ],
+    "infra_step": true,
+    "name": "isolate test orchestration inputs.write task_requests.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@[@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@  {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"priority\": \"200\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"task_slices\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@        \"expiration_secs\": \"600\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@        \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"outputs\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"serial.txt\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"syslog.txt\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"out\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"inputs_ref\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"namespace\": \"default-gzip\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"isolated\": \"[dummy hash]\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"io_timeout_secs\": \"300\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"cipd_input\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"packages\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"latest\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"infra/tools/luci-auth/${platform}\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"git_revision:12ba48e4eea05053e01e834502042a8c710bdc99\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"fuchsia/infra/catalyst/${platform}\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            ]@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"grace_period_secs\": \"30\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"1\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"serial\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"fuchsia.tests\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"pool\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"Khadas Vim2 Max\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"device_type\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"idempotent\": false, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"command\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./luci-auth\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"context\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"--\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./catalyst\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-bootserver\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-config\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"/etc/catalyst/config.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./botanist\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-level\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"debug\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"run\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-timeout\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"1800s\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-serial-log\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"serial.txt\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-syslog\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"syslog.txt\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-repo\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/builds/8945511751514863184/packages/repository\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-blobs\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-config\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"/etc/botanist/config.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./testrunner\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-out-dir\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"out\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"tests.json\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"env\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/zedboot.zbi\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"CATALYST_ZIRCONA_PATH\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"${ISOLATED_OUTDIR}\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"FUCHSIA_TEST_OUTDIR\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"fuchsia.googlesource.com\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"INPUT_COMMIT_HOST\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"LSAN_SYMBOLIZER_PATH\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"products/core.gni\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_PRODUCT\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_TARGET\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"ASAN_SYMBOLIZER_PATH\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"UBSAN_SYMBOLIZER_PATH\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"integration\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"INPUT_COMMIT_PROJECT\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"refs/heads/master\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"INPUT_COMMIT_REF\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"Khadas Vim2 Max\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"FUCHSIA_DEVICE_TYPE\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"8945511751514863184\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILDBUCKET_ID\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"boards/x64.gni\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_BOARD\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"0\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_CREATE_TIME\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"debug\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_TYPE\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"containment\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"lower_priority\": false, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"limit_processes\": \"0\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"containment_type\": \"NONE\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"limit_total_committed_memory\": \"0\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"execution_timeout_secs\": \"1800\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"env_prefixes\": []@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@        }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    ], @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"name\": \"Vim2\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"service_account\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      \"board:boards/x64.gni\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      \"build_type:debug\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      \"product:products/core.gni\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      \"shard_version:23030ea165c1ae2c1734a5998c2efc7ac000231c499611d2f126832d4349666d\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      \"task_name:Vim2\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      \"test_environment_name:Khadas Vim2 Max-x64\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    ]@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@  }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@]@@@",
+      "@@@STEP_LOG_END@task_requests.json@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "",
+      "[START_DIR]/fuchsia/out/default/ids.txt"
+    ],
+    "infra_step": true,
+    "name": "isolate test orchestration inputs.write empty build ids",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_END@ids.txt@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
+      "--link-json",
+      "{\"[CLEANUP]/test-orchestration-inputs_tmp_5/task_requests.json\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/task_requests.json\"], \"[START_DIR]/fuchsia/examplepath/perfcompare\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/perfcompare\"], \"[START_DIR]/fuchsia/out/default.zircon/host-linux-x64/minfs\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/minfs\"], \"[START_DIR]/fuchsia/out/default/ids.txt\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/ids.txt\"], \"[START_DIR]/fuchsia/out/default/linux_x64/covargs\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/covargs\"], \"[START_DIR]/fuchsia/out/default/linux_x64/symbolize\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/symbolize_tool\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-cov/linux_x64/llvm-cov\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/llvm_cov\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-profdata/linux_x64/llvm-profdata\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/llvm_profdata\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/llvm-symbolizer\"]}"
+    ],
+    "infra_step": true,
+    "name": "isolate test orchestration inputs.create_links",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[CACHE]/isolated_client/isolated",
+      "archive",
+      "-verbose",
+      "-isolate-server",
+      "https://example.isolateserver.appspot.com",
+      "-namespace",
+      "default-gzip",
+      "-dump-hash",
+      "/path/to/tmp/",
+      "-dirs",
+      "[CLEANUP]/test_orchestration_inputs_tmp_6:."
+    ],
+    "infra_step": true,
+    "name": "isolate test orchestration inputs.isolate",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@isolated UI@https://example.isolateserver.appspot.com/browse?namespace=default-gzip&hash=%5Bdummy+hash%5D@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "logging orchestration_inputs_hash",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@test_orchestration_inputs_hash@\"[dummy hash]\"@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/fuchsia/out/default/linux_x64/artifactory",
+      "up",
+      "-bucket",
+      "fuchsia-infra-artifacts",
+      "-uuid",
+      "8945511751514863184",
+      "[START_DIR]/fuchsia/out/default"
+    ],
+    "infra_step": true,
+    "name": "upload artifacts",
+    "timeout": 600
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipes/fuchsia/build.expected/spec_remote_cq_with_spec_revision.json b/recipes/fuchsia/build.expected/spec_remote_cq_with_spec_revision.json
new file mode 100644
index 0000000..1cc1f11
--- /dev/null
+++ b/recipes/fuchsia/build.expected/spec_remote_cq_with_spec_revision.json
@@ -0,0 +1,2635 @@
+[
+  {
+    "cmd": [],
+    "name": "ensure gerrit"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gerrit",
+      "-ensure-file",
+      "infra/tools/luci/gerrit/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure gerrit.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-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gerrit/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/gerrit/gerrit",
+      "change-detail",
+      "-host",
+      "https://fuchsia-review.googlesource.com",
+      "-input",
+      "{\"change_id\": \"123456\"}",
+      "-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "get_gerrit_details",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"branch\": \"master\"@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "ensure gitiles"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gitiles",
+      "-ensure-file",
+      "infra/tools/luci/gitiles/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure gitiles.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-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gitiles/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/gitiles/gitiles",
+      "refs",
+      "-json-output",
+      "/path/to/tmp/json",
+      "https://fuchsia.googlesource.com/integration",
+      "refs/heads"
+    ],
+    "infra_step": true,
+    "name": "refs",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"refs/heads/master\": \"deadbeef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef2\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "load spec",
+    "~followup_annotations": [
+      "@@@STEP_TEXT@loading spec@@@",
+      "@@@STEP_LOG_LINE@textproto@checkout {@@@",
+      "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  remote: \"https://fuchsia.googlesource.com/manifest\"@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@build {@@@",
+      "@@@STEP_LOG_LINE@textproto@  build_type: \"debug\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  board: \"boards/x64.gni\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  product: \"products/core.gni\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  run_tests: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  target: \"x64\"@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@test {@@@",
+      "@@@STEP_LOG_LINE@textproto@  device_type: \"QEMU\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  pool: \"fuchsia.tests\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
+      "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  targets_serial: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  target_shard_duration_secs: 600@@@",
+      "@@@STEP_LOG_LINE@textproto@  max_shards_per_env: 8@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
+      "@@@STEP_LOG_LINE@textproto@@@@",
+      "@@@STEP_LOG_END@textproto@@@",
+      "@@@SET_BUILD_PROPERTY@gcs_bucket@\"\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "load spec.ensure build_init",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/build_init",
+      "-ensure-file",
+      "fuchsia/infra/build_init/${platform} git_revision:bd277978791e1e35bf76e0df57f6aef14aef0757",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "load spec.ensure build_init.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:bd2\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/infra/build_init/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/build_init/build_init",
+      "-spec_remote",
+      "https://fuchsia.googlesource.com/integration",
+      "-spec_path",
+      "infra/config/generated/project/specs/try/builder.textproto",
+      "-spec_ref",
+      "deadbeef2"
+    ],
+    "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
+    "infra_step": true,
+    "name": "load spec.build_init",
+    "stdin": "CNDsgNmu8bWSfBIXCgdwcm9qZWN0EgN0cnkaB2J1aWxkZXIiHHVzZXI6Y29tbWl0LWJvdEBjaHJvbWl1bS5vcmcyBgi5wqLYBXp9EkUKGGZ1Y2hzaWEuZ29vZ2xlc291cmNlLmNvbRILaW50ZWdyYXRpb24aCWRlYWRiZWVmMiIRcmVmcy9oZWFkcy9tYXN0ZXIaNAofZnVjaHNpYS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbRILaW50ZWdyYXRpb24YwMQHIAeSAQQSAiAemgEYCg9jcV9leHBlcmltZW50YWwSBWZhbHNl",
+    "timeout": 600,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "checkout"
+  },
+  {
+    "cmd": [],
+    "name": "checkout.ensure jiri",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/jiri",
+      "-ensure-file",
+      "fuchsia/tools/jiri/${platform} git_revision:0cbbddb6bfe904d236a9a533f7b0e6be8f335120",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "checkout.ensure jiri.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:0cb\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/tools/jiri/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/jiri/jiri",
+      "init",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-analytics-opt=false",
+      "-rewrite-sso-to-https=true",
+      "-cache",
+      "[CACHE]/git",
+      "[START_DIR]/fuchsia"
+    ],
+    "name": "checkout.jiri init",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gerrit/gerrit",
+      "change-detail",
+      "-host",
+      "https://fuchsia-review.googlesource.com",
+      "-input",
+      "{\"change_id\": \"integration~123456\", \"params\": {\"o\": [\"ALL_REVISIONS\"]}}",
+      "-output",
+      "/path/to/tmp/json"
+    ],
+    "name": "checkout.get change details",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"branch\": \"master\", @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"revisions\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"a1b2c3\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"_number\": 7, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"ref\": \"refs/changes/00/100/7\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"d4e5f6\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"_number\": 3, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"ref\": \"refs/changes/00/100/3\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"g7h8i9\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"_number\": 9, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"ref\": \"refs/changes/00/100/9\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "import",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-name",
+      "integration",
+      "-remote-branch",
+      "master",
+      "minimal",
+      "https://fuchsia.googlesource.com/manifest"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri import",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "update",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-autoupdate=false",
+      "-attempts=3",
+      "-run-hooks=false",
+      "-fetch-packages=false"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri update",
+    "timeout": 1800,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "patch",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-host",
+      "https://fuchsia-review.googlesource.com",
+      "-project",
+      "integration",
+      "-rebase=true",
+      "refs/changes/00/100/7"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri patch",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "update",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-autoupdate=false",
+      "-attempts=3",
+      "-gc=true",
+      "-rebase-tracked",
+      "-local-manifest=true",
+      "-run-hooks=false",
+      "-fetch-packages=false"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri update (2)",
+    "timeout": 1800,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "run-hooks",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-attempts=3",
+      "-local-manifest=true"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri run-hooks",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "fetch-packages",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-attempts=3",
+      "-local-manifest=true"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri fetch-packages",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "source-manifest",
+      "-vv",
+      "-time",
+      "-j=50",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "checkout.jiri source-manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@{@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@  \"directories\": {@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@    \"manifest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@      \"git_checkout\": {@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@        \"repo_url\": \"https://fuchsia.googlesource.com/manifest\", @@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@        \"revision\": \"4c2b0da3c06341db5cebe4d02c78c93c3b2bd78b\"@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@      }@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@    }@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@  }@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@}@@@",
+      "@@@STEP_LOG_END@json.output[source manifest]@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "snapshot",
+      "-vv",
+      "-time",
+      "-j=50",
+      "[CLEANUP]/jiri.snapshot"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "infra_step": true,
+    "name": "checkout.jiri snapshot",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/jiri.snapshot",
+      "/path/to/tmp/"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "infra_step": true,
+    "name": "checkout.read snapshot",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_END@jiri.snapshot@@@",
+      "@@@STEP_LOG_LINE@snapshot_contents@@@@",
+      "@@@STEP_LOG_END@snapshot_contents@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "test multipliers"
+  },
+  {
+    "cmd": [
+      "git",
+      "show",
+      "HEAD",
+      "--format=%B",
+      "--no-patch"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "test multipliers.get commit msg",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@commit message@[foo] bar@@@",
+      "@@@STEP_LOG_LINE@commit message@baz@@@",
+      "@@@STEP_LOG_END@commit message@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "test multipliers.extract",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@value@[]@@@",
+      "@@@STEP_LOG_END@value@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[]",
+      "[CLEANUP]/tmp_tmp_2"
+    ],
+    "infra_step": true,
+    "name": "test multipliers.write",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@tmp_tmp_2@[]@@@",
+      "@@@STEP_LOG_END@tmp_tmp_2@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "validate checkout"
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "project",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-json-output",
+      "/path/to/tmp/json",
+      "integration"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "validate checkout.jiri project",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"branches\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"(HEAD detached at c22471f)\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"current_branch\": \"\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"integration\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"path/to/integration\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"remote\": \"https://fuchsia.googlesource.com/integration\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"revision\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[START_DIR]/fuchsia/scripts/style/verify-fidl-libraries.py",
+      "--repo",
+      "path/to/integration"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "validate checkout.validate FIDL namespaces",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build"
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ensure goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/goma/client",
+      "-ensure-file",
+      "infra_internal/goma/client/${platform} release",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ensure goma.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-release---------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra_internal/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": [
+      "[START_DIR]/fuchsia/prebuilt/third_party/gn/linux-x64/gn",
+      "gen",
+      "[START_DIR]/fuchsia/out/default",
+      "--check",
+      "--args=import(\"//boards/x64.gni\")  import(\"//products/core.gni\")  build_info_board=\"x64\" build_info_product=\"core\" goma_dir=\"[CACHE]/goma/client\" is_debug=true target_cpu=\"x64\" test_durations_file=\"integration/infra/test_durations/builder.json\" universe_package_labels+=[\"//bundles:infratools\"] use_goma=true"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "build.build fuchsia.gn gen",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/fuchsia/out/default/zircon.json",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/fuchsia",
+    "name": "build.build fuchsia.read zircon ninja instructions",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"dir\": \"../default.zircon\", @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"targets\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"legacy-host_tests\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"manifest-$cpu\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  ]@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/fuchsia/out/default/images.json",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.read image manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--boot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--zircona\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-a\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fuchsia.zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"storage-full\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fvm.blk\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"storage-sparse\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fvm.sparse.blk\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--efi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"efi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fuchsia.esp.blk\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_netboot\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--boot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"netboot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"netboot.zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"archive\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"build-archive.tgz\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"tgz\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"archive\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"build-archive.zip\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zip\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"qemu-kernel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"multiboot.bin\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"kernel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbol-archive\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"symbol-archive.tgz\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"tgz\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--zircon-r\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-r\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"zircon-r.zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave_zedboot\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--zircona\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-r\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"zedboot.zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/fuchsia/out/default/tool_paths.json",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.read tool_paths manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/linux_x64/bazel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/linux_x64/cargo\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/linux_x64/clang-doc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/linux_x64/clang-format-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/linux_x64/clang-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/linux_x64/clang-tidy-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/linux_x64/clang-tidy\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/linux_x64/dart\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/linux_x64/dartfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/linux_x64/gn\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/linux_x64/go\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/linux_x64/gofmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/linux_x64/llvm-cov\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/linux_x64/llvm-profdata\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/linux_x64/ninja\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/linux_x64/rustc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/linux_x64/rustdoc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/linux_x64/rustfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/linux_x64/yapf\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/bootserver\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fidl-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fidl-lint\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/minfs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/artifactory\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/bootserver_new\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/botanist\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/covargs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/debroot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/ninjatrace\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/seriallistener\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/size_checker\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/symbolize\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/testrunner\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/testsharder\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/linux_arm64/bazel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/linux_arm64/cargo\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/linux_arm64/clang-doc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/linux_arm64/clang-format-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/linux_arm64/clang-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/linux_arm64/clang-tidy-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/linux_arm64/clang-tidy\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/linux_arm64/dart\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/linux_arm64/dartfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/linux_arm64/gn\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/linux_arm64/go\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/linux_arm64/gofmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/linux_arm64/llvm-cov\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/linux_arm64/llvm-profdata\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/linux_arm64/llvm-symbolizer\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/linux_arm64/ninja\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/linux_arm64/rustc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/linux_arm64/rustdoc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/linux_arm64/rustfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/linux_arm64/yapf\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/bootserver\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fidl-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fidl-lint\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/minfs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/artifactory\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/bootserver_new\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/botanist\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/covargs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/debroot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/ninjatrace\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/seriallistener\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/size_checker\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/symbolize\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/testrunner\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/testsharder\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/mac_x64/bazel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/mac_x64/cargo\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/mac_x64/clang-doc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/mac_x64/clang-format-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/mac_x64/clang-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/mac_x64/clang-tidy-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/mac_x64/clang-tidy\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/mac_x64/dart\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/mac_x64/dartfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/mac_x64/gn\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/mac_x64/go\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/mac_x64/gofmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/mac_x64/llvm-cov\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/mac_x64/llvm-profdata\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/mac_x64/llvm-symbolizer\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/mac_x64/ninja\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/mac_x64/rustc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/mac_x64/rustdoc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/mac_x64/rustfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/mac_x64/yapf\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/bootserver\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fidl-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fidl-lint\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/minfs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/artifactory\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/bootserver_new\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/botanist\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/covargs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/debroot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/ninjatrace\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/seriallistener\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/size_checker\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/symbolize\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/testrunner\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/testsharder\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/mac_arm64/bazel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/mac_arm64/cargo\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/mac_arm64/clang-doc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/mac_arm64/clang-format-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/mac_arm64/clang-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/mac_arm64/clang-tidy-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/mac_arm64/clang-tidy\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/mac_arm64/dart\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/mac_arm64/dartfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/mac_arm64/gn\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/mac_arm64/go\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/mac_arm64/gofmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/mac_arm64/llvm-cov\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/mac_arm64/llvm-profdata\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/mac_arm64/llvm-symbolizer\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/mac_arm64/ninja\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/mac_arm64/rustc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/mac_arm64/rustdoc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/mac_arm64/rustfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/mac_arm64/yapf\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/bootserver\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fidl-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fidl-lint\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/minfs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/artifactory\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/bootserver_new\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/botanist\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/covargs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/debroot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/ninjatrace\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/seriallistener\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/size_checker\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/symbolize\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/testrunner\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/testsharder\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/fuchsia/out/default/tests.json",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.read test spec manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"test\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"label\": \"//public/lib/foo:foo_tests(//some/toolchain)\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"foo_tests\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"path\": \"path/on/disk/to/test\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"test\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"label\": \"//lib/bar:bar_unittests(//some/toolchain)\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"bar_unittests\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"os\": \"fuchsia\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"path\": \"path/on/fuchsia/to/test\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/fuchsia/out/default/prebuilt_binaries.json",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.read prebuilt binary manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"manifest\": \"gen/prebuilt_binary_manifest.json\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"prebuilt_binaries\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ninja",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ninja.pre_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "<LUCI_CONTEXT>",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.ninja.pre_goma.read context",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "{\"local_auth\": {\"accounts\": [{\"email\": \"some@example.com\", \"id\": \"test\"}], \"default_account_id\": \"system\"}}",
+      "[CLEANUP]/luci_context._tmp_3"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.pre_goma.write context",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@luci_context._tmp_3@{\"local_auth\": {\"accounts\": [{\"email\": \"some@example.com\", \"id\": \"test\"}], \"default_account_id\": \"system\"}}@@@",
+      "@@@STEP_LOG_END@luci_context._tmp_3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[CACHE]/goma/client/goma_ctl.py",
+      "restart"
+    ],
+    "env": {
+      "GOMA_CACHE_DIR": "[CACHE]/goma",
+      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+      "GOMA_PING_TIMEOUT_SEC": "100",
+      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
+    },
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.pre_goma.start_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[fuchsia::ninja]/resources/ninja_wrapper.py",
+      "--ninja_info_output",
+      "/path/to/tmp/json",
+      "--failure_output",
+      "/path/to/tmp/",
+      "--",
+      "[START_DIR]/fuchsia/prebuilt/third_party/ninja/linux_x64/ninja",
+      "-C",
+      "[START_DIR]/fuchsia/out/default.zircon",
+      "-j",
+      "80",
+      "legacy-host_tests",
+      "manifest-$cpu"
+    ],
+    "name": "build.build fuchsia.ninja.zircon",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[fuchsia::ninja]/resources/ninja_wrapper.py",
+      "--ninja_info_output",
+      "/path/to/tmp/json",
+      "--failure_output",
+      "/path/to/tmp/",
+      "--",
+      "[START_DIR]/fuchsia/prebuilt/third_party/ninja/linux_x64/ninja",
+      "-C",
+      "[START_DIR]/fuchsia/out/default",
+      "-j",
+      "80",
+      "build/images:record_filesystem_sizes",
+      "build/images:system_snapshot",
+      "build/images:updates",
+      "bundles:infratools",
+      "fuchsia.esp.blk",
+      "fuchsia.zbi",
+      "fvm.blk",
+      "fvm.sparse.blk",
+      "gen/prebuilt_binary_manifest.json",
+      "ids.txt",
+      "multiboot.bin",
+      "path/on/disk/to/test",
+      "zedboot.zbi",
+      "zircon-r.zbi"
+    ],
+    "name": "build.build fuchsia.ninja.fuchsia",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ninja.post_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[CACHE]/goma/client/goma_ctl.py",
+      "jsonstatus",
+      "[CACHE]/goma/client/jsonstatus"
+    ],
+    "env": {
+      "GOMA_CACHE_DIR": "[CACHE]/goma",
+      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
+    },
+    "name": "build.build fuchsia.ninja.post_goma.goma_jsonstatus",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"notice\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"infra_status\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"num_user_error\": 0, @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"ping_status_code\": 200@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  ]@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[CACHE]/goma/client/goma_ctl.py",
+      "stat"
+    ],
+    "env": {
+      "GOMA_CACHE_DIR": "[CACHE]/goma",
+      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
+    },
+    "name": "build.build fuchsia.ninja.post_goma.goma_stats",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[CACHE]/goma/client/goma_ctl.py",
+      "stop"
+    ],
+    "env": {
+      "GOMA_CACHE_DIR": "[CACHE]/goma",
+      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
+      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
+    },
+    "name": "build.build fuchsia.ninja.post_goma.stop_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CACHE]/goma/client/goma_stats.json",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.post_goma.read goma_stats.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+      "@@@STEP_LOG_END@goma_stats.json@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "{\"build_info\": {\"build_id\": 8945511751514863184, \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"builder\": \"builder\", \"time_stamp_int\": 1337000003000}}",
+      "[CACHE]/goma/client/goma_stats.json"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.post_goma.write goma_stats.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"builder\": \"builder\", \"time_stamp_int\": 1337000003000}}@@@",
+      "@@@STEP_LOG_END@goma_stats.json@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"build_info\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"build_id\": 8945511751514863184, @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"builder\": \"builder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"time_stamp_int\": 1337000003000@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ninja.post_goma.ensure bqupload",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/bqupload",
+      "-ensure-file",
+      "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.post_goma.ensure bqupload.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@5@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/bqupload/bqupload",
+      "fuchsia-infra.artifacts.builds_beta_goma",
+      "[CACHE]/goma/client/goma_stats.json"
+    ],
+    "name": "build.build fuchsia.ninja.post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/fuchsia/out/default.zircon/host-linux-x64/fvm",
+      "[START_DIR]/fuchsia/out/default/fvm.blk",
+      "extend",
+      "--length",
+      "10000000000"
+    ],
+    "name": "build.build fuchsia.fvm.blk extend",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/fuchsia/out/default/linux_x64/size_checker",
+      "--build-dir",
+      "[START_DIR]/fuchsia/out/default",
+      "--sizes-json-out",
+      "/path/to/tmp/json"
+    ],
+    "name": "check sizes",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"some-file\": 123@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@SET_BUILD_PROPERTY@binary_sizes@{\"some-file\": 123}@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "bb",
+      "batch",
+      "-host",
+      "cr-buildbucket.appspot.com"
+    ],
+    "infra_step": true,
+    "name": "buildbucket.get",
+    "stdin": "{\"requests\": [{\"getBuild\": {\"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"id\": \"8945511751514863184\"}}]}",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"getBuild\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"id\": \"8945511751514863184\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"status\": \"SUCCESS\"@@@",
+      "@@@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@@@",
+      "@@@STEP_LOG_LINE@request@{@@@",
+      "@@@STEP_LOG_LINE@request@  \"requests\": [@@@",
+      "@@@STEP_LOG_LINE@request@    {@@@",
+      "@@@STEP_LOG_LINE@request@      \"getBuild\": {@@@",
+      "@@@STEP_LOG_LINE@request@        \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", @@@",
+      "@@@STEP_LOG_LINE@request@        \"id\": \"8945511751514863184\"@@@",
+      "@@@STEP_LOG_LINE@request@      }@@@",
+      "@@@STEP_LOG_LINE@request@    }@@@",
+      "@@@STEP_LOG_LINE@request@  ]@@@",
+      "@@@STEP_LOG_LINE@request@}@@@",
+      "@@@STEP_LOG_END@request@@@",
+      "@@@STEP_LINK@8945511751514863184@https://cr-buildbucket.appspot.com/build/8945511751514863184@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/fuchsia/out/default/linux_x64/testsharder",
+      "-build-dir",
+      "[START_DIR]/fuchsia/out/default",
+      "-output-file",
+      "/path/to/tmp/json",
+      "-target-duration-secs",
+      "600",
+      "-max-shards-per-env",
+      "8",
+      "-multipliers",
+      "[CLEANUP]/tmp_tmp_2"
+    ],
+    "name": "create test shards",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"deps\": [], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"environment\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"dimensions\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"device_type\": \"Khadas Vim2 Max\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    }, @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"Vim2\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"tests\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"install_path\": \"host_x64/path/to/test\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"label\": \"//path/to/test:test(//toolchain)\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"name\": \"test\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"path\": \"host_x64/path/to/test\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "shard Vim2"
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[\n  {\n    \"path\": \"host_x64/path/to/test\", \n    \"os\": \"linux\", \n    \"name\": \"test\", \n    \"install_path\": \"host_x64/path/to/test\", \n    \"label\": \"//path/to/test:test(//toolchain)\"\n  }\n]",
+      "[CLEANUP]/isolate_tmp_4/tests.json"
+    ],
+    "infra_step": true,
+    "name": "shard Vim2.write test manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@tests.json@[@@@",
+      "@@@STEP_LOG_LINE@tests.json@  {@@@",
+      "@@@STEP_LOG_LINE@tests.json@    \"path\": \"host_x64/path/to/test\", @@@",
+      "@@@STEP_LOG_LINE@tests.json@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@tests.json@    \"name\": \"test\", @@@",
+      "@@@STEP_LOG_LINE@tests.json@    \"install_path\": \"host_x64/path/to/test\", @@@",
+      "@@@STEP_LOG_LINE@tests.json@    \"label\": \"//path/to/test:test(//toolchain)\"@@@",
+      "@@@STEP_LOG_LINE@tests.json@  }@@@",
+      "@@@STEP_LOG_LINE@tests.json@]@@@",
+      "@@@STEP_LOG_END@tests.json@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
+      "--link-json",
+      "{\"[START_DIR]/fuchsia/out/default/host_x64/path/to/test\": [\"[CLEANUP]/isolate_tmp_4/host_x64/path/to/test\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
+    ],
+    "infra_step": true,
+    "name": "shard Vim2.create tree of build artifacts",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "shard Vim2.ensure isolated",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/isolated_client",
+      "-ensure-file",
+      "infra/tools/luci/isolated/${platform} git_revision:305e79001db1846906c7136d90a863bee5bd3bfc",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "shard Vim2.ensure isolated.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:305\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/isolated/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": [
+      "[CACHE]/isolated_client/isolated",
+      "archive",
+      "-verbose",
+      "-isolate-server",
+      "https://example.isolateserver.appspot.com",
+      "-namespace",
+      "default-gzip",
+      "-dump-hash",
+      "/path/to/tmp/",
+      "-dirs",
+      "[CLEANUP]/isolate_tmp_4:."
+    ],
+    "infra_step": true,
+    "name": "shard Vim2.isolate build artifacts",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@isolated UI@https://example.isolateserver.appspot.com/browse?namespace=default-gzip&hash=%5Bdummy+hash%5D@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "isolate test orchestration inputs"
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"serial.txt\", \n            \"syslog.txt\", \n            \"out\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"cipd_input\": {\n            \"packages\": [\n              {\n                \"path\": \".\", \n                \"version\": \"latest\", \n                \"package_name\": \"infra/tools/luci-auth/${platform}\"\n              }, \n              {\n                \"path\": \".\", \n                \"version\": \"git_revision:12ba48e4eea05053e01e834502042a8c710bdc99\", \n                \"package_name\": \"fuchsia/infra/catalyst/${platform}\"\n              }\n            ]\n          }, \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"1\", \n              \"key\": \"serial\"\n            }, \n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./luci-auth\", \n            \"context\", \n            \"--\", \n            \"./catalyst\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", \n            \"-bootserver\", \n            \"./bootserver_new\", \n            \"-config\", \n            \"/etc/catalyst/config.json\", \n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/builds/8945511751514863184/packages/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-out-dir\", \n            \"out\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/zedboot.zbi\", \n              \"key\": \"CATALYST_ZIRCONA_PATH\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"fuchsia.googlesource.com\", \n              \"key\": \"INPUT_COMMIT_HOST\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"integration\", \n              \"key\": \"INPUT_COMMIT_PROJECT\"\n            }, \n            {\n              \"value\": \"refs/heads/master\", \n              \"key\": \"INPUT_COMMIT_REF\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"0\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"service_account\", \n    \"tags\": [\n      \"board:boards/x64.gni\", \n      \"build_type:debug\", \n      \"product:products/core.gni\", \n      \"shard_version:23030ea165c1ae2c1734a5998c2efc7ac000231c499611d2f126832d4349666d\", \n      \"task_name:Vim2\", \n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
+      "[CLEANUP]/test-orchestration-inputs_tmp_5/task_requests.json"
+    ],
+    "infra_step": true,
+    "name": "isolate test orchestration inputs.write task_requests.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@[@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@  {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"priority\": \"200\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"task_slices\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@        \"expiration_secs\": \"600\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@        \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"outputs\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"serial.txt\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"syslog.txt\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"out\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"inputs_ref\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"namespace\": \"default-gzip\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"isolated\": \"[dummy hash]\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"io_timeout_secs\": \"300\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"cipd_input\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"packages\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"latest\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"infra/tools/luci-auth/${platform}\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"git_revision:12ba48e4eea05053e01e834502042a8c710bdc99\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"fuchsia/infra/catalyst/${platform}\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            ]@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"grace_period_secs\": \"30\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"1\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"serial\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"fuchsia.tests\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"pool\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"Khadas Vim2 Max\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"device_type\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"idempotent\": false, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"command\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./luci-auth\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"context\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"--\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./catalyst\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-bootserver\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-config\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"/etc/catalyst/config.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./botanist\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-level\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"debug\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"run\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-timeout\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"1800s\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-serial-log\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"serial.txt\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-syslog\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"syslog.txt\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-repo\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/builds/8945511751514863184/packages/repository\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-blobs\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-config\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"/etc/botanist/config.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./testrunner\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"-out-dir\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"out\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"tests.json\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"env\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/zedboot.zbi\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"CATALYST_ZIRCONA_PATH\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"${ISOLATED_OUTDIR}\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"FUCHSIA_TEST_OUTDIR\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"fuchsia.googlesource.com\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"INPUT_COMMIT_HOST\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"LSAN_SYMBOLIZER_PATH\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"products/core.gni\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_PRODUCT\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_TARGET\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"ASAN_SYMBOLIZER_PATH\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"UBSAN_SYMBOLIZER_PATH\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"integration\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"INPUT_COMMIT_PROJECT\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"refs/heads/master\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"INPUT_COMMIT_REF\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"Khadas Vim2 Max\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"FUCHSIA_DEVICE_TYPE\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"8945511751514863184\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILDBUCKET_ID\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"boards/x64.gni\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_BOARD\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"0\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_CREATE_TIME\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"debug\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_TYPE\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"containment\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"lower_priority\": false, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"limit_processes\": \"0\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"containment_type\": \"NONE\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"limit_total_committed_memory\": \"0\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"execution_timeout_secs\": \"1800\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"env_prefixes\": []@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@        }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    ], @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"name\": \"Vim2\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"service_account\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      \"board:boards/x64.gni\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      \"build_type:debug\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      \"product:products/core.gni\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      \"shard_version:23030ea165c1ae2c1734a5998c2efc7ac000231c499611d2f126832d4349666d\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      \"task_name:Vim2\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@      \"test_environment_name:Khadas Vim2 Max-x64\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    ]@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@  }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@]@@@",
+      "@@@STEP_LOG_END@task_requests.json@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "",
+      "[START_DIR]/fuchsia/out/default/ids.txt"
+    ],
+    "infra_step": true,
+    "name": "isolate test orchestration inputs.write empty build ids",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_END@ids.txt@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
+      "--link-json",
+      "{\"[CLEANUP]/test-orchestration-inputs_tmp_5/task_requests.json\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/task_requests.json\"], \"[START_DIR]/fuchsia/examplepath/perfcompare\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/perfcompare\"], \"[START_DIR]/fuchsia/out/default.zircon/host-linux-x64/minfs\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/minfs\"], \"[START_DIR]/fuchsia/out/default/ids.txt\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/ids.txt\"], \"[START_DIR]/fuchsia/out/default/linux_x64/covargs\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/covargs\"], \"[START_DIR]/fuchsia/out/default/linux_x64/symbolize\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/symbolize_tool\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-cov/linux_x64/llvm-cov\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/llvm_cov\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-profdata/linux_x64/llvm-profdata\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/llvm_profdata\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/llvm-symbolizer\"]}"
+    ],
+    "infra_step": true,
+    "name": "isolate test orchestration inputs.create_links",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[CACHE]/isolated_client/isolated",
+      "archive",
+      "-verbose",
+      "-isolate-server",
+      "https://example.isolateserver.appspot.com",
+      "-namespace",
+      "default-gzip",
+      "-dump-hash",
+      "/path/to/tmp/",
+      "-dirs",
+      "[CLEANUP]/test_orchestration_inputs_tmp_6:."
+    ],
+    "infra_step": true,
+    "name": "isolate test orchestration inputs.isolate",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@isolated UI@https://example.isolateserver.appspot.com/browse?namespace=default-gzip&hash=%5Bdummy+hash%5D@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "logging orchestration_inputs_hash",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@test_orchestration_inputs_hash@\"[dummy hash]\"@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/fuchsia/out/default/linux_x64/artifactory",
+      "up",
+      "-bucket",
+      "fuchsia-infra-artifacts",
+      "-uuid",
+      "8945511751514863184",
+      "[START_DIR]/fuchsia/out/default"
+    ],
+    "infra_step": true,
+    "name": "upload artifacts",
+    "timeout": 600
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipes/fuchsia/build.expected/subbuild_no_parent_id.json b/recipes/fuchsia/build.expected/subbuild_no_parent_id.json
index 6150e73..20c01e7 100644
--- a/recipes/fuchsia/build.expected/subbuild_no_parent_id.json
+++ b/recipes/fuchsia/build.expected/subbuild_no_parent_id.json
@@ -103,8 +103,16 @@
   },
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
+      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -191,13 +199,6 @@
     ]
   },
   {
-    "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
-    ]
-  },
-  {
     "cmd": [
       "python",
       "-u",
diff --git a/recipes/fuchsia/build.py b/recipes/fuchsia/build.py
index 8d3e65f..66f6dc9 100644
--- a/recipes/fuchsia/build.py
+++ b/recipes/fuchsia/build.py
@@ -21,7 +21,6 @@
     'fuchsia/buildbucket_util',
     'fuchsia/build_input_resolver',
     'fuchsia/checkout',
-    'fuchsia/fuchsia',
     'fuchsia/git',
     'fuchsia/gitiles',
     'fuchsia/jiri',
@@ -63,13 +62,47 @@
 
 
 def RunSteps(api, parent_id, spec_remote, spec_revision):
-  spec, spec_revision = api.fuchsia.setup_with_spec(spec_remote, spec_revision)
+  # Resolve the build input to always contain a Gitiles commit.
+  api.build_input_resolver.resolve(
+      default_project_url='https://fuchsia.googlesource.com/fuchsia')
+  bb_input = api.buildbucket.build_input
+  commit_remote = 'https://%s/%s' % (bb_input.gitiles_commit.host,
+                                     bb_input.gitiles_commit.project)
+  if commit_remote == spec_remote:
+    # If there was no parent build, then spec_revision may not have been
+    # resolved, so use the revision that we resolved immediately above.
+    if spec_revision == 'HEAD':
+      spec_revision = bb_input.gitiles_commit.id
+    # Otherwise the spec_revision was specified by the parent, and we want all
+    # accesses to that remote to use that revision. In this case,
+    # build_input_resolver.resolve() is unnecessary since we overwrite the
+    # revision, but we only use it to pre-populate the gitiles_commit of the
+    # build input and to keep the conditional logic simpler.
+    else:
+      bb_input.gitiles_commit.id = spec_revision
 
-  bb_input = api.buildbucket.build.input
   with api.step.nest('got_revision') as presentation:
     # Read by the binary-size Gerrit plugin
     presentation.properties['got_revision'] = bb_input.gitiles_commit.id
 
+  with api.step.nest('load spec') as presentation:
+    presentation.step_text = 'loading spec'
+    try:
+      spec = api.spec.load(
+          spec_remote=spec_remote,
+          Type=Fuchsia,
+          spec_revision=spec_revision,
+      )
+    except api.spec.ParseError as e:
+      raise api.step.StepFailure('failed to parse spec: %s' % str(e))
+
+    presentation.logs['textproto'] = text_format.MessageToString(spec).split(
+        '\n')
+    # The artifacts tool relies on this output property.
+    # This design has been fragile. Please don't add more dependencies on any
+    # additional output properties.
+    presentation.properties['gcs_bucket'] = spec.gcs_bucket
+
   # TODO(fxb/39958): Retrying all failed builds in Gerrit launches subbuilds as
   # well, which fail because they're not triggered by a parent build. Once
   # that's resolved we can get rid of this check.
@@ -381,6 +414,26 @@
   )
 
   yield (
+    api.checkout.test('spec_remote_cq', tryjob=True) +
+    api.build.test('spec_remote_cq', tryjob=True) +
+    spec_data(run_tests=True) +
+    api.buildbucket.try_build(git_repo=spec_remote) +
+    api.build_input_resolver.set_gerrit_branch('master') +
+    default_gitiles_refs_steps +
+    api.properties(**properties)
+  )
+
+  yield (
+    api.checkout.test('spec_remote_cq_with_spec_revision', tryjob=True) +
+    api.build.test('spec_remote_cq', tryjob=True) +
+    spec_data(run_tests=True) +
+    api.buildbucket.try_build(git_repo=spec_remote) +
+    api.build_input_resolver.set_gerrit_branch('master') +
+    default_gitiles_refs_steps +
+    api.properties(spec_revision='deadbeef2', **properties)
+  )
+
+  yield (
     api.checkout.test('build_type_release_not_run_tests', tryjob=False) +
     api.build.test('default', create_shards=False) +
     spec_data(build_type='release', gcs_bucket='fuchsia-infra',
@@ -388,6 +441,8 @@
     api.properties(**properties)
   )
 
+  yield (api.checkout.test('spec_parse_error', tryjob=False, status='failure') +
+         api.spec.spec_parse_error(step_name='load spec.build_init'))
   # yapf: enable
 
   yield (api.checkout.test('sdk', tryjob=False) +
diff --git a/recipes/fuchsia/fuchsia.py b/recipes/fuchsia/fuchsia.py
index 5960efa..3fe3356 100644
--- a/recipes/fuchsia/fuchsia.py
+++ b/recipes/fuchsia/fuchsia.py
@@ -82,8 +82,25 @@
   # lossy, so we have to use a string properties and convert to int
   # internally.
   child_build_id = int(child_build_id) if child_build_id else None
+  # Resolve the build input to always contain a Gitiles commit.
+  api.build_input_resolver.resolve(
+      default_project_url='https://fuchsia.googlesource.com/fuchsia')
 
-  spec, spec_revision = api.fuchsia.setup_with_spec(spec_remote)
+  with api.step.nest('load spec') as presentation:
+    try:
+      spec, spec_revision = api.spec.get_spec_revision(
+          spec_remote=spec_remote,
+          Type=Fuchsia,
+      )
+    except api.spec.ParseError as e:
+      raise api.step.StepFailure('failed to parse spec: %s' % str(e))
+
+    presentation.logs['textproto'] = text_format.MessageToString(spec).split(
+        '\n')
+    # The artifacts tool relies on this output property.
+    # This design has been fragile. Please don't add more dependencies on any
+    # additional output properties.
+    presentation.properties['gcs_bucket'] = spec.gcs_bucket
 
   orchestrator_id = api.buildbucket_util.id
   if not spec.build.run_tests: