Propagate gitiles_commit to subbuilds.

The get-builder command used by led does not propagate gitiles_commit
which causes subbuilds to always use ToT from main with unexpected
results.

This change propagates the buildbucket gitiles_commit info through
git_url and git_ref when running from led.

Bug: https://github.com/flutter/flutter/issues/124872
Change-Id: I95d3c63720d4bfd69d0db95d8bff3976227ea1c9
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/41844
Reviewed-by: Keyong Han <keyonghan@google.com>
Reviewed-by: Ricardo Amador <ricardoamador@google.com>
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
diff --git a/recipe_modules/shard_util_v2/api.py b/recipe_modules/shard_util_v2/api.py
index 2f3ef92..4a01d70 100644
--- a/recipe_modules/shard_util_v2/api.py
+++ b/recipe_modules/shard_util_v2/api.py
@@ -201,6 +201,15 @@
           self.m.platform.name
       )
 
+      # Buildbucket properties are not propagated to sub-builds when running with
+      # led. Copy the properties bb gitiles_commit to git_ref and git_url if not
+      # set already.
+      if not (drone_properties.get('git_ref') or drone_properties.get('git_url')):
+        host = self.m.buildbucket.gitiles_commit.host
+        project = self.m.buildbucket.gitiles_commit.project
+        drone_properties['git_url'] = f'https://{host}/{project}'
+        drone_properties['git_ref'] = self.m.buildbucket.gitiles_commit.id
+
       # Override recipe.
       drone_properties['recipe'] = build['recipe']
       bucket = self.m.buildbucket.build.builder.bucket
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led_subbuilds.json b/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led_subbuilds.json
new file mode 100644
index 0000000..67ca2f4
--- /dev/null
+++ b/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led_subbuilds.json
@@ -0,0 +1,2152 @@
+[
+  {
+    "cmd": [],
+    "name": "launch builds"
+  },
+  {
+    "cmd": [
+      "led",
+      "get-builder",
+      "-real-build",
+      "proj/try/custom drone builder-try"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds.led get-builder",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@proto.output@{@@@",
+      "@@@STEP_LOG_LINE@proto.output@  \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"bbagent_args\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@        }@@@",
+      "@@@STEP_LOG_LINE@proto.output@      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@}@@@",
+      "@@@STEP_LOG_END@proto.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "led",
+      "edit",
+      "-p",
+      "$recipe_engine/buildbucket={\"build\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"try-builder\", \"project\": \"proj\"}, \"createTime\": \"2018-05-25T23:50:17Z\", \"createdBy\": \"project:proj\", \"id\": \"8945511751514863184\", \"infra\": {\"resultdb\": {\"invocation\": \"invocations/build:8945511751514863184\"}, \"swarming\": {\"priority\": 30}}, \"input\": {\"gerritChanges\": [{\"change\": \"123456\", \"host\": \"github.com\", \"patchset\": \"7\", \"project\": \"repo/a\"}], \"gitilesCommit\": {\"host\": \"github.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"repo/a\", \"ref\": \"refs/heads/main\"}}, \"number\": 123, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}]}}",
+      "-p",
+      "$recipe_engine/led={\"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\", \"rbe_cas_input\": {\"cas_instance\": \"projects/chromium-swarm/instances/default_instance\", \"digest\": {\"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\", \"size_bytes\": 91}}}",
+      "-p",
+      "build={\"dimensions\": {\"cpu\": \"arm64\"}, \"drone_builder_name\": \"custom drone builder\", \"drone_dimensions\": [\"dimension1=abc\"], \"gn\": [], \"name\": \"ios_debug\", \"ninja\": [\"ios_debug\"], \"recipe\": \"engine_v2/builder\"}",
+      "-p",
+      "builder_name_suffix=\"-try\"",
+      "-p",
+      "environment=\"Staging\"",
+      "-p",
+      "gclient_variables={}",
+      "-p",
+      "git_ref=\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"",
+      "-p",
+      "git_url=\"https://github.com/repo/a\"",
+      "-p",
+      "recipe=\"engine_v2/builder\"",
+      "-p",
+      "task_name=\"ios_debug\"",
+      "-p",
+      "tests=[{\"dependencies\": [\"ios_debug\"], \"name\": \"felt_test\", \"parameters\": [\"test\"], \"scripts\": [\"out/script.sh\"]}]"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds.led edit",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        }\n      }\n    }\n  }\n}",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@proto.output@{@@@",
+      "@@@STEP_LOG_LINE@proto.output@  \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"bbagent_args\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"priority\": -20@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"builder\": \"try-builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createTime\": \"2018-05-25T23:50:17Z\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createdBy\": \"project:proj\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"id\": \"8945511751514863184\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"resultdb\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"invocation\": \"invocations/build:8945511751514863184\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"priority\": 30.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gerritChanges\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"change\": \"123456\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"patchset\": \"7\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"project\": \"repo/a\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gitilesCommit\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"project\": \"repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"ref\": \"refs/heads/main\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"number\": 123.0,@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"key\": \"cq_experimental\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"value\": \"false\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/led\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"rbe_cas_input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"size_bytes\": 91.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"dimensions\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cpu\": \"arm64\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              },@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"drone_builder_name\": \"custom drone builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dimension1=abc\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"gn\": [],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"name\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"ninja\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"recipe\": \"engine_v2/builder\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_url\": \"https://github.com/repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"recipe\": \"engine_v2/builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"task_name\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"tests\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@              {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        }@@@",
+      "@@@STEP_LOG_LINE@proto.output@      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@}@@@",
+      "@@@STEP_LOG_END@proto.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "led",
+      "edit",
+      "-name",
+      "ios_debug"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds.led edit (2)",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dimensions\": {\n                \"cpu\": \"arm64\"\n              },\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ],\n              \"recipe\": \"engine_v2/builder\"\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"git_url\": \"https://github.com/repo/a\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    }\n  }\n}",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@proto.output@{@@@",
+      "@@@STEP_LOG_LINE@proto.output@  \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"bbagent_args\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"priority\": -20@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"builder\": \"try-builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createTime\": \"2018-05-25T23:50:17Z\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createdBy\": \"project:proj\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"id\": \"8945511751514863184\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"resultdb\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"invocation\": \"invocations/build:8945511751514863184\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"priority\": 30.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gerritChanges\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"change\": \"123456\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"patchset\": \"7\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"project\": \"repo/a\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gitilesCommit\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"project\": \"repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"ref\": \"refs/heads/main\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"number\": 123.0,@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"key\": \"cq_experimental\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"value\": \"false\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/led\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"rbe_cas_input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"size_bytes\": 91.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"dimensions\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cpu\": \"arm64\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              },@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"drone_builder_name\": \"custom drone builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dimension1=abc\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"gn\": [],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"name\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"ninja\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"recipe\": \"engine_v2/builder\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_url\": \"https://github.com/repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"recipe\": \"engine_v2/builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"task_name\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"tests\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@              {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        }@@@",
+      "@@@STEP_LOG_LINE@proto.output@      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@    },@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"name\": \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@}@@@",
+      "@@@STEP_LOG_END@proto.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "led",
+      "edit",
+      "-r",
+      "engine_v2/builder"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds.led edit (3)",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dimensions\": {\n                \"cpu\": \"arm64\"\n              },\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ],\n              \"recipe\": \"engine_v2/builder\"\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"git_url\": \"https://github.com/repo/a\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@proto.output@{@@@",
+      "@@@STEP_LOG_LINE@proto.output@  \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"bbagent_args\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"priority\": -20@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"builder\": \"try-builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createTime\": \"2018-05-25T23:50:17Z\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createdBy\": \"project:proj\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"id\": \"8945511751514863184\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"resultdb\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"invocation\": \"invocations/build:8945511751514863184\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"priority\": 30.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gerritChanges\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"change\": \"123456\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"patchset\": \"7\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"project\": \"repo/a\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gitilesCommit\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"project\": \"repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"ref\": \"refs/heads/main\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"number\": 123.0,@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"key\": \"cq_experimental\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"value\": \"false\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/led\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"rbe_cas_input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"size_bytes\": 91.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"dimensions\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cpu\": \"arm64\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              },@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"drone_builder_name\": \"custom drone builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dimension1=abc\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"gn\": [],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"name\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"ninja\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"recipe\": \"engine_v2/builder\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_url\": \"https://github.com/repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"recipe\": \"engine_v2/builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"task_name\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"tests\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@              {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        }@@@",
+      "@@@STEP_LOG_LINE@proto.output@      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@    },@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"name\": \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@}@@@",
+      "@@@STEP_LOG_END@proto.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "led",
+      "edit",
+      "-d",
+      "dimension1=abc"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds.led edit (4)",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dimensions\": {\n                \"cpu\": \"arm64\"\n              },\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ],\n              \"recipe\": \"engine_v2/builder\"\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"git_url\": \"https://github.com/repo/a\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@proto.output@{@@@",
+      "@@@STEP_LOG_LINE@proto.output@  \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"bbagent_args\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"priority\": -20@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"builder\": \"try-builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createTime\": \"2018-05-25T23:50:17Z\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createdBy\": \"project:proj\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"id\": \"8945511751514863184\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"resultdb\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"invocation\": \"invocations/build:8945511751514863184\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"priority\": 30.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gerritChanges\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"change\": \"123456\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"patchset\": \"7\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"project\": \"repo/a\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gitilesCommit\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"project\": \"repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"ref\": \"refs/heads/main\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"number\": 123.0,@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"key\": \"cq_experimental\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"value\": \"false\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/led\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"rbe_cas_input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"size_bytes\": 91.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"dimensions\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cpu\": \"arm64\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              },@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"drone_builder_name\": \"custom drone builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dimension1=abc\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"gn\": [],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"name\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"ninja\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"recipe\": \"engine_v2/builder\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_url\": \"https://github.com/repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"recipe\": \"engine_v2/builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"task_name\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"tests\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@              {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        }@@@",
+      "@@@STEP_LOG_LINE@proto.output@      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@    },@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"name\": \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@}@@@",
+      "@@@STEP_LOG_END@proto.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "led",
+      "edit",
+      "-d",
+      "cpu=arm64"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds.led edit (5)",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dimensions\": {\n                \"cpu\": \"arm64\"\n              },\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ],\n              \"recipe\": \"engine_v2/builder\"\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"git_url\": \"https://github.com/repo/a\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@proto.output@{@@@",
+      "@@@STEP_LOG_LINE@proto.output@  \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"bbagent_args\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"priority\": -20@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"builder\": \"try-builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createTime\": \"2018-05-25T23:50:17Z\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createdBy\": \"project:proj\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"id\": \"8945511751514863184\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"resultdb\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"invocation\": \"invocations/build:8945511751514863184\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"priority\": 30.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gerritChanges\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"change\": \"123456\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"patchset\": \"7\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"project\": \"repo/a\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gitilesCommit\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"project\": \"repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"ref\": \"refs/heads/main\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"number\": 123.0,@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"key\": \"cq_experimental\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"value\": \"false\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/led\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"rbe_cas_input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"size_bytes\": 91.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"dimensions\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cpu\": \"arm64\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              },@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"drone_builder_name\": \"custom drone builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dimension1=abc\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"gn\": [],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"name\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"ninja\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"recipe\": \"engine_v2/builder\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_url\": \"https://github.com/repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"recipe\": \"engine_v2/builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"task_name\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"tests\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@              {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        }@@@",
+      "@@@STEP_LOG_LINE@proto.output@      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@    },@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"name\": \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@}@@@",
+      "@@@STEP_LOG_END@proto.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "led",
+      "edit",
+      "-rbh",
+      "146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e/91"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds.led edit (6)",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dimensions\": {\n                \"cpu\": \"arm64\"\n              },\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ],\n              \"recipe\": \"engine_v2/builder\"\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"git_url\": \"https://github.com/repo/a\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@proto.output@{@@@",
+      "@@@STEP_LOG_LINE@proto.output@  \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"bbagent_args\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"agent\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"data\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"kitchen-checkout\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"cas\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                        \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                        \"size_bytes\": \"91\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              },@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"purposes\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"kitchen-checkout\": \"PURPOSE_EXE_PAYLOAD\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            }@@@",
+      "@@@STEP_LOG_LINE@proto.output@          },@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"priority\": -20@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"builder\": \"try-builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createTime\": \"2018-05-25T23:50:17Z\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createdBy\": \"project:proj\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"id\": \"8945511751514863184\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"resultdb\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"invocation\": \"invocations/build:8945511751514863184\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"priority\": 30.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gerritChanges\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"change\": \"123456\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"patchset\": \"7\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"project\": \"repo/a\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gitilesCommit\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"project\": \"repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"ref\": \"refs/heads/main\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"number\": 123.0,@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"key\": \"cq_experimental\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"value\": \"false\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/led\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"rbe_cas_input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"size_bytes\": 91.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"dimensions\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cpu\": \"arm64\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              },@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"drone_builder_name\": \"custom drone builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dimension1=abc\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"gn\": [],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"name\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"ninja\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"recipe\": \"engine_v2/builder\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_url\": \"https://github.com/repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"recipe\": \"engine_v2/builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"task_name\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"tests\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@              {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        }@@@",
+      "@@@STEP_LOG_LINE@proto.output@      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@    },@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"name\": \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@}@@@",
+      "@@@STEP_LOG_END@proto.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "led",
+      "launch",
+      "-modernize"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds.led launch",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"buildbucket\": {\n            \"agent\": {\n              \"input\": {\n                \"data\": {\n                  \"kitchen-checkout\": {\n                    \"cas\": {\n                      \"digest\": {\n                        \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                        \"size_bytes\": \"91\"\n                      }\n                    }\n                  }\n                }\n              },\n              \"purposes\": {\n                \"kitchen-checkout\": \"PURPOSE_EXE_PAYLOAD\"\n              }\n            }\n          },\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dimensions\": {\n                \"cpu\": \"arm64\"\n              },\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ],\n              \"recipe\": \"engine_v2/builder\"\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"git_url\": \"https://github.com/repo/a\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"host_name\": \"example.swarmingserver.appspot.com\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"task_id\": \"fake-task-id\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@STEP_LINK@Swarming task@https://example.swarmingserver.appspot.com/task?id=fake-task-id@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "collect builds"
+  },
+  {
+    "cmd": [],
+    "name": "collect builds.install infra/tools/luci/swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/cipd_tool/infra/tools/luci/swarming/swarming_module_pin"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect builds.install infra/tools/luci/swarming.ensure package directory",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd_tool/infra/tools/luci/swarming/swarming_module_pin",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} swarming_module_pin",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect builds.install infra/tools/luci/swarming.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-swarming_module_\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/swarming/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd_tool/infra/tools/luci/swarming/swarming_module_pin/swarming",
+      "collect",
+      "-server",
+      "https://example.swarmingserver.appspot.com",
+      "-task-summary-json",
+      "/path/to/tmp/json",
+      "-task-output-stdout",
+      "json",
+      "-output-dir",
+      "[CLEANUP]",
+      "fake-task-id"
+    ],
+    "cost": {
+      "cpu": 100,
+      "disk": 0,
+      "memory": 50,
+      "net": 0
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect builds.collect",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"fake-task-id-1\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"output\": \"hello world!\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"outputs\": [], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"results\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"bot_id\": \"vm-123\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"cas_output_root\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"cas_instance\": \"projects/example-project/instances/default_instance\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"hash\": \"24b2420bc49d8b8fdc1d011a163708927532b37dc9f91d7d8d6877e3a86559ca\", @@@",
+      "@@@STEP_LOG_LINE@json.output@          \"size_bytes\": \"73\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        }@@@",
+      "@@@STEP_LOG_LINE@json.output@      }, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"duration\": 62.35, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"exit_code\": \"0\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"ios_debug\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"resultdb_info\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"invocation\": \"invocations/some-inv-name\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"state\": \"COMPLETED\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"task_id\": \"fake-task-id-1\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"fake-task-id-2\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"output\": \"hello world!\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"outputs\": [], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"results\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"bot_id\": \"vm-123\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"cas_output_root\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"cas_instance\": \"projects/example-project/instances/default_instance\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"hash\": \"24b2420bc49d8b8fdc1d011a163708927532b37dc9f91d7d8d6877e3a86559ca\", @@@",
+      "@@@STEP_LOG_LINE@json.output@          \"size_bytes\": \"73\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        }@@@",
+      "@@@STEP_LOG_LINE@json.output@      }, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"duration\": 62.35, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"exit_code\": \"0\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"builder-subbuild2\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"resultdb_info\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"invocation\": \"invocations/some-inv-name\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }, @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"state\": \"COMPLETED\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"task_id\": \"fake-task-id-2\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@STEP_LOG_LINE@task stdout+stderr: builder-subbuild2@hello world!@@@",
+      "@@@STEP_LOG_END@task stdout+stderr: builder-subbuild2@@@",
+      "@@@STEP_LOG_LINE@task stdout+stderr: ios_debug@hello world!@@@",
+      "@@@STEP_LOG_END@task stdout+stderr: ios_debug@@@",
+      "@@@STEP_LINK@task cas outputs: builder-subbuild2@https://cas-viewer.appspot.com/projects/example-project/instances/default_instance/blobs/24b2420bc49d8b8fdc1d011a163708927532b37dc9f91d7d8d6877e3a86559ca/73/tree@@@",
+      "@@@STEP_LINK@task cas outputs: ios_debug@https://cas-viewer.appspot.com/projects/example-project/instances/default_instance/blobs/24b2420bc49d8b8fdc1d011a163708927532b37dc9f91d7d8d6877e3a86559ca/73/tree@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/fake-task-id-2/build.proto.json",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect builds.read build.proto.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@{@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"builder\": \"ios_debug\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"project\": \"fuchsia\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  },@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"create_time\": \"2018-05-25T23:50:17Z\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"created_by\": \"project:fuchsia\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"id\": \"8945511751514863186\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"resultdb\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"invocation\": \"invocations/build:8945511751514863186\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    },@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"priority\": 30,@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"task_id\": \"abc123\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    }@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  },@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"input\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"gerrit_changes\": [@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"change\": \"123456\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"host\": \"chromium-review.googlesource.com\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"patchset\": \"7\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"project\": \"fuchsia\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      }@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    ],@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"task_name\": \"mytask\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    }@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  },@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"output\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"cas_output_hash\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"full_build\": \"123\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"ios_debug\": \"bcd\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"web_tests\": \"abc\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      }@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    }@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  },@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"status\": \"SUCCESS\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"key\": \"cq_experimental\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"value\": \"false\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    }@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  ]@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@}@@@",
+      "@@@STEP_LOG_END@build.proto.json@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/fake-task-id-1/build.proto.json",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect builds.read build.proto.json (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@{@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"builder\": \"builder-subbuild2\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"project\": \"fuchsia\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  },@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"create_time\": \"2018-05-25T23:50:17Z\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"created_by\": \"project:fuchsia\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"id\": \"8945511751514863187\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"resultdb\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"invocation\": \"invocations/build:8945511751514863187\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    },@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"priority\": 30,@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"task_id\": \"abc123\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    }@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  },@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"input\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"gerrit_changes\": [@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"change\": \"123456\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"host\": \"chromium-review.googlesource.com\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"patchset\": \"7\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"project\": \"fuchsia\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      }@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    ]@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  },@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"output\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"cas_output_hash\": {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"ios_debug\": \"bcd\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@        \"web_tests\": \"abc\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      }@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    }@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  },@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"status\": \"SUCCESS\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    {@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"key\": \"cq_experimental\",@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@      \"value\": \"false\"@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@    }@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@  ]@@@",
+      "@@@STEP_LOG_LINE@build.proto.json@}@@@",
+      "@@@STEP_LOG_END@build.proto.json@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copytree",
+      "[START_DIR]/out/host_debug",
+      "[CLEANUP]/out-cas-directory_tmp_1/host_debug"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect builds.Copy host_debug_unopt",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "RECIPE_MODULE[recipe_engine::cas]/resources/infra.sha1",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect builds.read infra revision",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@infra.sha1@git_revision:mock_infra_git_revision@@@",
+      "@@@STEP_LOG_END@infra.sha1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "collect builds.install infra/tools/luci/cas",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/cipd_tool/infra/tools/luci/cas/git_revision%3Amock_infra_git_revision"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect builds.install infra/tools/luci/cas.ensure package directory",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd_tool/infra/tools/luci/cas/git_revision%3Amock_infra_git_revision",
+      "-ensure-file",
+      "infra/tools/luci/cas/${platform} git_revision:mock_infra_git_revision",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect builds.install infra/tools/luci/cas.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:moc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/cas/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd_tool/infra/tools/luci/cas/git_revision%3Amock_infra_git_revision/cas",
+      "archive",
+      "-cas-instance",
+      "projects/example-cas-server/instances/default_instance",
+      "-dump-digest",
+      "/path/to/tmp/",
+      "-paths-json",
+      "[[\"[CLEANUP]/out-cas-directory_tmp_1\", \".\"]]",
+      "-log-level",
+      "debug"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect builds.Archive full build for host_debug",
+    "timeout": 900.0,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@CAS UI@https://cas-viewer.appspot.com/projects/example-cas-server/instances/default_instance/blobs/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0/tree@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd_tool/infra/tools/luci/cas/git_revision%3Amock_infra_git_revision/cas",
+      "download",
+      "-cas-instance",
+      "projects/example-cas-server/instances/default_instance",
+      "-digest",
+      "123",
+      "-dir",
+      "[CLEANUP]/out"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect builds.Download for build fake-task-id-2 and cas key builder-subbuild2",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "launch builds (2)"
+  },
+  {
+    "cmd": [
+      "led",
+      "get-builder",
+      "-real-build",
+      "proj/try/Linux Engine Drone-try"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds (2).led get-builder",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@proto.output@{@@@",
+      "@@@STEP_LOG_LINE@proto.output@  \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"bbagent_args\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@        }@@@",
+      "@@@STEP_LOG_LINE@proto.output@      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@}@@@",
+      "@@@STEP_LOG_END@proto.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "led",
+      "edit",
+      "-p",
+      "$recipe_engine/buildbucket={\"build\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"try-builder\", \"project\": \"proj\"}, \"createTime\": \"2018-05-25T23:50:17Z\", \"createdBy\": \"project:proj\", \"id\": \"8945511751514863184\", \"infra\": {\"resultdb\": {\"invocation\": \"invocations/build:8945511751514863184\"}, \"swarming\": {\"priority\": 30}}, \"input\": {\"gerritChanges\": [{\"change\": \"123456\", \"host\": \"github.com\", \"patchset\": \"7\", \"project\": \"repo/a\"}], \"gitilesCommit\": {\"host\": \"github.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"repo/a\", \"ref\": \"refs/heads/main\"}}, \"number\": 123, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}]}}",
+      "-p",
+      "$recipe_engine/led={\"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\", \"rbe_cas_input\": {\"cas_instance\": \"projects/chromium-swarm/instances/default_instance\", \"digest\": {\"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\", \"size_bytes\": 91}}}",
+      "-p",
+      "build={\"dependencies\": [\"ios_debug\"], \"name\": \"felt_test\", \"parameters\": [\"test\"], \"recipe\": \"engine_v2/tester\", \"resolved_deps\": [{\"ios_debug\": \"bcd\", \"web_tests\": \"abc\"}], \"scripts\": [\"out/script.sh\"]}",
+      "-p",
+      "builder_name_suffix=\"-try\"",
+      "-p",
+      "environment=\"Staging\"",
+      "-p",
+      "gclient_variables={}",
+      "-p",
+      "git_ref=\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"",
+      "-p",
+      "git_url=\"https://github.com/repo/a\"",
+      "-p",
+      "recipe=\"engine_v2/tester\"",
+      "-p",
+      "task_name=\"felt_test\"",
+      "-p",
+      "tests=[{\"dependencies\": [\"ios_debug\"], \"name\": \"felt_test\", \"parameters\": [\"test\"], \"scripts\": [\"out/script.sh\"]}]"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds (2).led edit",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        }\n      }\n    }\n  }\n}",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@proto.output@{@@@",
+      "@@@STEP_LOG_LINE@proto.output@  \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"bbagent_args\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"priority\": -20@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"builder\": \"try-builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createTime\": \"2018-05-25T23:50:17Z\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createdBy\": \"project:proj\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"id\": \"8945511751514863184\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"resultdb\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"invocation\": \"invocations/build:8945511751514863184\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"priority\": 30.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gerritChanges\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"change\": \"123456\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"patchset\": \"7\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"project\": \"repo/a\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gitilesCommit\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"project\": \"repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"ref\": \"refs/heads/main\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"number\": 123.0,@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"key\": \"cq_experimental\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"value\": \"false\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/led\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"rbe_cas_input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"size_bytes\": 91.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"recipe\": \"engine_v2/tester\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"resolved_deps\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\": \"bcd\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"web_tests\": \"abc\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_url\": \"https://github.com/repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"recipe\": \"engine_v2/tester\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"task_name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"tests\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@              {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        }@@@",
+      "@@@STEP_LOG_LINE@proto.output@      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@}@@@",
+      "@@@STEP_LOG_END@proto.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "led",
+      "edit",
+      "-name",
+      "felt_test"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds (2).led edit (2)",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dependencies\": [\n                \"ios_debug\"\n              ],\n              \"name\": \"felt_test\",\n              \"parameters\": [\n                \"test\"\n              ],\n              \"recipe\": \"engine_v2/tester\",\n              \"resolved_deps\": [\n                {\n                  \"ios_debug\": \"bcd\",\n                  \"web_tests\": \"abc\"\n                }\n              ],\n              \"scripts\": [\n                \"out/script.sh\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"git_url\": \"https://github.com/repo/a\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    }\n  }\n}",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@proto.output@{@@@",
+      "@@@STEP_LOG_LINE@proto.output@  \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"bbagent_args\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"priority\": -20@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"builder\": \"try-builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createTime\": \"2018-05-25T23:50:17Z\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createdBy\": \"project:proj\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"id\": \"8945511751514863184\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"resultdb\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"invocation\": \"invocations/build:8945511751514863184\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"priority\": 30.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gerritChanges\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"change\": \"123456\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"patchset\": \"7\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"project\": \"repo/a\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gitilesCommit\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"project\": \"repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"ref\": \"refs/heads/main\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"number\": 123.0,@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"key\": \"cq_experimental\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"value\": \"false\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/led\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"rbe_cas_input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"size_bytes\": 91.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"recipe\": \"engine_v2/tester\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"resolved_deps\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\": \"bcd\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"web_tests\": \"abc\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_url\": \"https://github.com/repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"recipe\": \"engine_v2/tester\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"task_name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"tests\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@              {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        }@@@",
+      "@@@STEP_LOG_LINE@proto.output@      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@    },@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"name\": \"felt_test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@}@@@",
+      "@@@STEP_LOG_END@proto.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "led",
+      "edit",
+      "-r",
+      "engine_v2/tester"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds (2).led edit (3)",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dependencies\": [\n                \"ios_debug\"\n              ],\n              \"name\": \"felt_test\",\n              \"parameters\": [\n                \"test\"\n              ],\n              \"recipe\": \"engine_v2/tester\",\n              \"resolved_deps\": [\n                {\n                  \"ios_debug\": \"bcd\",\n                  \"web_tests\": \"abc\"\n                }\n              ],\n              \"scripts\": [\n                \"out/script.sh\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"git_url\": \"https://github.com/repo/a\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@proto.output@{@@@",
+      "@@@STEP_LOG_LINE@proto.output@  \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"bbagent_args\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"priority\": -20@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"builder\": \"try-builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createTime\": \"2018-05-25T23:50:17Z\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createdBy\": \"project:proj\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"id\": \"8945511751514863184\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"resultdb\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"invocation\": \"invocations/build:8945511751514863184\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"priority\": 30.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gerritChanges\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"change\": \"123456\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"patchset\": \"7\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"project\": \"repo/a\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gitilesCommit\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"project\": \"repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"ref\": \"refs/heads/main\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"number\": 123.0,@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"key\": \"cq_experimental\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"value\": \"false\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/led\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"rbe_cas_input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"size_bytes\": 91.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"recipe\": \"engine_v2/tester\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"resolved_deps\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\": \"bcd\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"web_tests\": \"abc\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_url\": \"https://github.com/repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"recipe\": \"engine_v2/tester\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"task_name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"tests\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@              {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        }@@@",
+      "@@@STEP_LOG_LINE@proto.output@      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@    },@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"name\": \"felt_test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@}@@@",
+      "@@@STEP_LOG_END@proto.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "led",
+      "edit",
+      "-rbh",
+      "146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e/91"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds (2).led edit (4)",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dependencies\": [\n                \"ios_debug\"\n              ],\n              \"name\": \"felt_test\",\n              \"parameters\": [\n                \"test\"\n              ],\n              \"recipe\": \"engine_v2/tester\",\n              \"resolved_deps\": [\n                {\n                  \"ios_debug\": \"bcd\",\n                  \"web_tests\": \"abc\"\n                }\n              ],\n              \"scripts\": [\n                \"out/script.sh\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"git_url\": \"https://github.com/repo/a\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@proto.output@{@@@",
+      "@@@STEP_LOG_LINE@proto.output@  \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"bbagent_args\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"agent\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"data\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"kitchen-checkout\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"cas\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                        \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                        \"size_bytes\": \"91\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              },@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"purposes\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"kitchen-checkout\": \"PURPOSE_EXE_PAYLOAD\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            }@@@",
+      "@@@STEP_LOG_LINE@proto.output@          },@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"priority\": -20@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        },@@@",
+      "@@@STEP_LOG_LINE@proto.output@        \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/buildbucket\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"builder\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"bucket\": \"try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"builder\": \"try-builder\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"project\": \"proj\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createTime\": \"2018-05-25T23:50:17Z\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"createdBy\": \"project:proj\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"id\": \"8945511751514863184\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"infra\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"resultdb\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"invocation\": \"invocations/build:8945511751514863184\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"priority\": 30.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gerritChanges\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"change\": \"123456\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"patchset\": \"7\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                      \"project\": \"repo/a\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"gitilesCommit\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"host\": \"github.com\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"project\": \"repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"ref\": \"refs/heads/main\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                },@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"number\": 123.0,@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"key\": \"cq_experimental\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                    \"value\": \"false\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"$recipe_engine/led\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"rbe_cas_input\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"size_bytes\": 91.0@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"recipe\": \"engine_v2/tester\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"resolved_deps\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\": \"bcd\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"web_tests\": \"abc\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                }@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@              \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@              ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@            },@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"builder_name_suffix\": \"-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"environment\": \"Staging\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"gclient_variables\": {},@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_url\": \"https://github.com/repo/a\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"recipe\": \"engine_v2/tester\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"task_name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"tests\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@              {@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"dependencies\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"ios_debug\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"name\": \"felt_test\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"parameters\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ],@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"scripts\": [@@@",
+      "@@@STEP_LOG_LINE@proto.output@                  \"out/script.sh\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@                ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@              }@@@",
+      "@@@STEP_LOG_LINE@proto.output@            ]@@@",
+      "@@@STEP_LOG_LINE@proto.output@          }@@@",
+      "@@@STEP_LOG_LINE@proto.output@        }@@@",
+      "@@@STEP_LOG_LINE@proto.output@      }@@@",
+      "@@@STEP_LOG_LINE@proto.output@    },@@@",
+      "@@@STEP_LOG_LINE@proto.output@    \"name\": \"felt_test\"@@@",
+      "@@@STEP_LOG_LINE@proto.output@  }@@@",
+      "@@@STEP_LOG_LINE@proto.output@}@@@",
+      "@@@STEP_LOG_END@proto.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "led",
+      "launch",
+      "-modernize"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "proj:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "launch builds (2).led launch",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"buildbucket\": {\n            \"agent\": {\n              \"input\": {\n                \"data\": {\n                  \"kitchen-checkout\": {\n                    \"cas\": {\n                      \"digest\": {\n                        \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                        \"size_bytes\": \"91\"\n                      }\n                    }\n                  }\n                }\n              },\n              \"purposes\": {\n                \"kitchen-checkout\": \"PURPOSE_EXE_PAYLOAD\"\n              }\n            }\n          },\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dependencies\": [\n                \"ios_debug\"\n              ],\n              \"name\": \"felt_test\",\n              \"parameters\": [\n                \"test\"\n              ],\n              \"recipe\": \"engine_v2/tester\",\n              \"resolved_deps\": [\n                {\n                  \"ios_debug\": \"bcd\",\n                  \"web_tests\": \"abc\"\n                }\n              ],\n              \"scripts\": [\n                \"out/script.sh\"\n              ]\n            },\n            \"builder_name_suffix\": \"-try\",\n            \"environment\": \"Staging\",\n            \"gclient_variables\": {},\n            \"git_ref\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"git_url\": \"https://github.com/repo/a\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"swarming\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"host_name\": \"example.swarmingserver.appspot.com\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"task_id\": \"fake-task-id\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@STEP_LINK@Swarming task@https://example.swarmingserver.appspot.com/task?id=fake-task-id@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipe_modules/shard_util_v2/examples/full.py b/recipe_modules/shard_util_v2/examples/full.py
index e11534a..cc7bff1 100644
--- a/recipe_modules/shard_util_v2/examples/full.py
+++ b/recipe_modules/shard_util_v2/examples/full.py
@@ -149,3 +149,21 @@
           collect_step='collect builds',
       )
   )
+
+  presubmit_props = copy.deepcopy(props)
+  presubmit_props['builds'][0]['drone_builder_name'] = 'custom drone builder'
+  yield api.test(
+      'presubmit_led_subbuilds', api.properties(**presubmit_props),
+      api.platform.name('linux'),
+      api.buildbucket.try_build(
+          project='proj',
+          builder='try-builder',
+          git_repo='https://github.com/repo/a',
+          revision='a' * 40,
+          build_number=123
+      ),
+      api.shard_util_v2.child_led_steps(
+          subbuilds=[try_subbuild1, try_subbuild2],
+          collect_step='collect builds',
+      )
+  )