[engine_v2] Allow the drone name to be specified in builder properties

Bug: b/241223373
Change-Id: Ia2d687caf72bdab85e8246c683064c6c5a3d820a
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/32580
Reviewed-by: Keyong Han <keyonghan@google.com>
Commit-Queue: William Hesse <whesse@google.com>
Reviewed-by: Godofredo Contreras <godofredoc@google.com>
diff --git a/recipe_modules/shard_util_v2/api.py b/recipe_modules/shard_util_v2/api.py
index d1a593f..92e0e31 100644
--- a/recipe_modules/shard_util_v2/api.py
+++ b/recipe_modules/shard_util_v2/api.py
@@ -161,41 +161,41 @@
       # Override recipe.
       drone_properties['recipe'] = recipe_name
 
-      if self.m.led.launched_by_led:
-        # If coming from led Launch sub-build using led.
-        environment = drone_properties['environment']
-        environment = '%s ' % environment if environment else ''
-        builder_name = '%s %sEngine Drone' % (platform_name, environment)
-        parent = self.m.buildbucket.build.builder
-        led_data = self.m.led(
-            "get-builder",
-            "luci.%s.%s:%s" % (parent.project, parent.bucket, builder_name),
-        )
-        edit_args = []
-        for k, v in sorted(drone_properties.items()):
-          edit_args.extend(["-p", "%s=%s" % (k, self.m.json.dumps(v))])
-        # led reduces the priority of tasks by 10 from their values in
-        # buildbucket which we do not want.
-        # TODO(crbug.com/1138533) Add an option to led to handle this.
-        led_data.result.buildbucket.bbagent_args.build.infra.swarming.priority -= 20
-        led_data = led_data.then("edit", *edit_args)
-        led_data = led_data.then("edit", "-name", task_name)
-        led_data = led_data.then("edit", "-r", recipe_name)
-        for d in drone_dimensions:
-          led_data = led_data.then("edit", "-d", d)
-        led_data = self.m.led.inject_input_recipes(led_data)
-        launch_res = led_data.then("launch", "-modernize")
-        task_id = launch_res.launch_result.task_id
-        build_url = "https://ci.chromium.org/swarming/task/%s?server=%s" % (
-            task_id,
-            launch_res.launch_result.swarming_hostname,
-        )
-        results[task_name] = SubbuildResult(
-            builder=task_name,
-            build_id=task_id,
-            url=build_url,
-            build_name=task_name
-        )
+      environment = drone_properties['environment']
+      environment = '%s ' % environment if environment else ''
+      builder_name = build.get(
+          'drone_builder_name',
+          '%s %sEngine Drone' % (platform_name, environment))
+      parent = self.m.buildbucket.build.builder
+      led_data = self.m.led(
+          "get-builder",
+          "luci.%s.%s:%s" % (parent.project, parent.bucket, builder_name),
+      )
+      edit_args = []
+      for k, v in sorted(drone_properties.items()):
+        edit_args.extend(["-p", "%s=%s" % (k, self.m.json.dumps(v))])
+      # led reduces the priority of tasks by 10 from their values in
+      # buildbucket which we do not want.
+      # TODO(crbug.com/1138533) Add an option to led to handle this.
+      led_data.result.buildbucket.bbagent_args.build.infra.swarming.priority -= 20
+      led_data = led_data.then("edit", *edit_args)
+      led_data = led_data.then("edit", "-name", task_name)
+      led_data = led_data.then("edit", "-r", recipe_name)
+      for d in drone_dimensions:
+        led_data = led_data.then("edit", "-d", d)
+      led_data = self.m.led.inject_input_recipes(led_data)
+      launch_res = led_data.then("launch", "-modernize")
+      task_id = launch_res.launch_result.task_id
+      build_url = "https://ci.chromium.org/swarming/task/%s?server=%s" % (
+          task_id,
+          launch_res.launch_result.swarming_hostname,
+      )
+      results[task_name] = SubbuildResult(
+          builder=task_name,
+          build_id=task_id,
+          url=build_url,
+          build_name=task_name
+      )
     return results
 
   def _schedule_with_bb(self, builds, recipe_name):
@@ -221,7 +221,10 @@
           self.m.platform.name
       )
       environment = drone_properties['environment']
-      builder_name = '%s %s Engine Drone' % (platform_name, environment)
+      environment = '%s ' % environment if environment else ''
+      builder_name = build.get(
+          'drone_builder_name',
+          '%s %sEngine Drone' % (platform_name, environment))
       for d in drone_dimensions:
         k, v = d.split('=')
         task_dimensions.append(common_pb2.RequestedDimension(key=k, value=v))
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_bb.json b/recipe_modules/shard_util_v2/examples/full.expected/presubmit_bb.json
index d14008f..56b95e7 100644
--- a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_bb.json
+++ b/recipe_modules/shard_util_v2/examples/full.expected/presubmit_bb.json
@@ -24,7 +24,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Staging Engine Drone\", \"project\": \"fuchsia\"}, \"dimensions\": [{\"key\": \"dimension1\", \"value\": \"abc\"}], \"exe\": {\"cipdVersion\": \"refs/heads/main\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gerritChanges\": [{\"change\": \"123456\", \"host\": \"fuchsia-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"fuchsia\"}], \"priority\": 25, \"properties\": {\"build\": {\"drone_dimensions\": [\"dimension1=abc\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}}, \"builds\": [{\"drone_dimensions\": [\"dimension1=abc\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}}], \"dependencies\": [{\"dependency\": \"android_sdk\"}, {\"dependency\": \"chrome_and_driver\"}], \"environment\": \"Staging\", \"git_ref\": \"refs/123/master\", \"git_url\": \"http://abc\", \"recipe\": \"engine_v2/builder\", \"task_name\": \"mytask\", \"tests\": [{\"dependencies\": [\"ios_debug\"], \"name\": \"felt_test\", \"parameters\": [\"test\"], \"scripts\": [\"out/script.sh\"]}]}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"custom drone builder\", \"project\": \"fuchsia\"}, \"dimensions\": [{\"key\": \"dimension1\", \"value\": \"abc\"}], \"exe\": {\"cipdVersion\": \"refs/heads/main\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gerritChanges\": [{\"change\": \"123456\", \"host\": \"fuchsia-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"fuchsia\"}], \"priority\": 25, \"properties\": {\"build\": {\"drone_builder_name\": \"custom drone builder\", \"drone_dimensions\": [\"dimension1=abc\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}}, \"builds\": [{\"drone_builder_name\": \"custom drone builder\", \"drone_dimensions\": [\"dimension1=abc\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}}], \"dependencies\": [{\"dependency\": \"android_sdk\"}, {\"dependency\": \"chrome_and_driver\"}], \"environment\": \"Staging\", \"git_ref\": \"refs/123/master\", \"git_url\": \"http://abc\", \"recipe\": \"engine_v2/builder\", \"task_name\": \"mytask\", \"tests\": [{\"dependencies\": [\"ios_debug\"], \"name\": \"felt_test\", \"parameters\": [\"test\"], \"scripts\": [\"out/script.sh\"]}]}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -48,7 +48,7 @@
       "@@@STEP_LOG_LINE@request@      \"scheduleBuild\": {@@@",
       "@@@STEP_LOG_LINE@request@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"bucket\": \"try\", @@@",
-      "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Staging Engine Drone\", @@@",
+      "@@@STEP_LOG_LINE@request@          \"builder\": \"custom drone builder\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"fuchsia\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
@@ -76,6 +76,7 @@
       "@@@STEP_LOG_LINE@request@        \"priority\": 25, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"build\": {@@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_builder_name\": \"custom drone builder\", @@@",
       "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
       "@@@STEP_LOG_LINE@request@              \"dimension1=abc\"@@@",
       "@@@STEP_LOG_LINE@request@            ], @@@",
@@ -96,6 +97,7 @@
       "@@@STEP_LOG_LINE@request@          }, @@@",
       "@@@STEP_LOG_LINE@request@          \"builds\": [@@@",
       "@@@STEP_LOG_LINE@request@            {@@@",
+      "@@@STEP_LOG_LINE@request@              \"drone_builder_name\": \"custom drone builder\", @@@",
       "@@@STEP_LOG_LINE@request@              \"drone_dimensions\": [@@@",
       "@@@STEP_LOG_LINE@request@                \"dimension1=abc\"@@@",
       "@@@STEP_LOG_LINE@request@              ], @@@",
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led.json b/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led.json
index 9ea86f8..14d4459 100644
--- a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led.json
+++ b/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led.json
@@ -7,7 +7,7 @@
     "cmd": [
       "led",
       "get-builder",
-      "luci.proj.try:Linux Staging Engine Drone"
+      "luci.proj.try:custom drone builder"
     ],
     "luci_context": {
       "realm": {
@@ -30,7 +30,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Staging Engine Drone\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        }@@@",
       "@@@STEP_LOG_LINE@proto.output@      }@@@",
@@ -49,7 +49,7 @@
       "-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={\"drone_dimensions\": [\"dimension1=abc\"], \"gn\": [], \"name\": \"ios_debug\", \"ninja\": [\"ios_debug\"]}",
+      "build={\"drone_builder_name\": \"custom drone builder\", \"drone_dimensions\": [\"dimension1=abc\"], \"gn\": [], \"name\": \"ios_debug\", \"ninja\": [\"ios_debug\"]}",
       "-p",
       "dependencies=[{\"dependency\": \"android_sdk\"}, {\"dependency\": \"chrome_and_driver\"}]",
       "-p",
@@ -78,7 +78,7 @@
       }
     },
     "name": "launch builds.led edit",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Staging Engine Drone\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        }\n      }\n    }\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder\",\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@{@@@",
@@ -87,7 +87,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Staging Engine Drone\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -151,6 +151,7 @@
       "@@@STEP_LOG_LINE@proto.output@              }@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@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@              ],@@@",
@@ -216,7 +217,7 @@
       }
     },
     "name": "launch builds.led edit (2)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Staging Engine Drone\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"dependencies\": [\n              {\n                \"dependency\": \"android_sdk\"\n              },\n              {\n                \"dependency\": \"chrome_and_driver\"\n              }\n            ],\n            \"environment\": \"Staging\",\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    }\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"dependencies\": [\n              {\n                \"dependency\": \"android_sdk\"\n              },\n              {\n                \"dependency\": \"chrome_and_driver\"\n              }\n            ],\n            \"environment\": \"Staging\",\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    }\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -225,7 +226,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Staging Engine Drone\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -289,6 +290,7 @@
       "@@@STEP_LOG_LINE@proto.output@              }@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@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@              ],@@@",
@@ -355,7 +357,7 @@
       }
     },
     "name": "launch builds.led edit (3)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Staging Engine Drone\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"dependencies\": [\n              {\n                \"dependency\": \"android_sdk\"\n              },\n              {\n                \"dependency\": \"chrome_and_driver\"\n              }\n            ],\n            \"environment\": \"Staging\",\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"dependencies\": [\n              {\n                \"dependency\": \"android_sdk\"\n              },\n              {\n                \"dependency\": \"chrome_and_driver\"\n              }\n            ],\n            \"environment\": \"Staging\",\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -364,7 +366,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Staging Engine Drone\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -428,6 +430,7 @@
       "@@@STEP_LOG_LINE@proto.output@              }@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@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@              ],@@@",
@@ -494,7 +497,7 @@
       }
     },
     "name": "launch builds.led edit (4)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Staging Engine Drone\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"dependencies\": [\n              {\n                \"dependency\": \"android_sdk\"\n              },\n              {\n                \"dependency\": \"chrome_and_driver\"\n              }\n            ],\n            \"environment\": \"Staging\",\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"dependencies\": [\n              {\n                \"dependency\": \"android_sdk\"\n              },\n              {\n                \"dependency\": \"chrome_and_driver\"\n              }\n            ],\n            \"environment\": \"Staging\",\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -503,7 +506,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Staging Engine Drone\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -567,6 +570,7 @@
       "@@@STEP_LOG_LINE@proto.output@              }@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@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@              ],@@@",
@@ -633,7 +637,7 @@
       }
     },
     "name": "launch builds.led edit (5)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Staging Engine Drone\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"dependencies\": [\n              {\n                \"dependency\": \"android_sdk\"\n              },\n              {\n                \"dependency\": \"chrome_and_driver\"\n              }\n            ],\n            \"environment\": \"Staging\",\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"dependencies\": [\n              {\n                \"dependency\": \"android_sdk\"\n              },\n              {\n                \"dependency\": \"chrome_and_driver\"\n              }\n            ],\n            \"environment\": \"Staging\",\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -642,7 +646,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Staging Engine Drone\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"custom drone builder\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -706,6 +710,7 @@
       "@@@STEP_LOG_LINE@proto.output@              }@@@",
       "@@@STEP_LOG_LINE@proto.output@            },@@@",
       "@@@STEP_LOG_LINE@proto.output@            \"build\": {@@@",
+      "@@@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@              ],@@@",
@@ -777,7 +782,7 @@
       }
     },
     "name": "launch builds.led launch",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Staging Engine Drone\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"dependencies\": [\n              {\n                \"dependency\": \"android_sdk\"\n              },\n              {\n                \"dependency\": \"chrome_and_driver\"\n              }\n            ],\n            \"environment\": \"Staging\",\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  },\n  \"cas_user_payload\": {\n    \"digest\": {\n      \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n      \"size_bytes\": \"91\"\n    }\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\"\n              ],\n              \"gn\": [],\n              \"name\": \"ios_debug\",\n              \"ninja\": [\n                \"ios_debug\"\n              ]\n            },\n            \"dependencies\": [\n              {\n                \"dependency\": \"android_sdk\"\n              },\n              {\n                \"dependency\": \"chrome_and_driver\"\n              }\n            ],\n            \"environment\": \"Staging\",\n            \"git_ref\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  },\n  \"cas_user_payload\": {\n    \"digest\": {\n      \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n      \"size_bytes\": \"91\"\n    }\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
diff --git a/recipe_modules/shard_util_v2/examples/full.py b/recipe_modules/shard_util_v2/examples/full.py
index 10104c3..c2cf583 100644
--- a/recipe_modules/shard_util_v2/examples/full.py
+++ b/recipe_modules/shard_util_v2/examples/full.py
@@ -104,6 +104,7 @@
   presubmit_props = copy.deepcopy(props)
   presubmit_props['git_url'] = 'http://abc'
   presubmit_props['git_ref'] = 'refs/123/master'
+  presubmit_props['builds'][0]['drone_builder_name'] = 'custom drone builder'
 
   yield api.test(
       'presubmit_led', api.properties(**presubmit_props),
@@ -124,6 +125,7 @@
   presubmit_props_bb = copy.deepcopy(props_bb)
   presubmit_props_bb['git_url'] = 'http://abc'
   presubmit_props_bb['git_ref'] = 'refs/123/master'
+  presubmit_props_bb['builds'][0]['drone_builder_name'] = 'custom drone builder'
 
   yield (
       api.buildbucket_util.test("presubmit_bb", tryjob=True, status="failure") +