Cherrypick in calculating drones using dimensions
Original PR: https://flutter-review.googlesource.com/c/recipes/+/44444/3

Change-Id: I03cfbb710df39b611233d4afabd939a228afebf8
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/48340
Reviewed-by: Casey Hillers <chillers@google.com>
Commit-Queue: Drew Roen <drewroen@google.com>
diff --git a/recipe_modules/shard_util_v2/api.py b/recipe_modules/shard_util_v2/api.py
index 489097c..2e8b9cf 100644
--- a/recipe_modules/shard_util_v2/api.py
+++ b/recipe_modules/shard_util_v2/api.py
@@ -18,7 +18,10 @@
 # Builder names use full platform name instead of short names. We need to
 # map short names to full platform names to be able to identify the drone
 # used to run the subshards.
-PLATFORM_TO_NAME = {'win': 'Windows', 'linux': 'Linux', 'mac': 'Mac'}
+PLATFORM_TO_NAME = {'os=win': 'Windows', 'os=lin': 'Linux', 'os=mac': 'Mac'}
+
+# Characters to use from the build configuration os dimension.
+OS_DIM_CHAR_SIZE = 6
 
 # Internal properties that should be set for builds running on BuildBucket.
 PROPERTIES_TO_REMOVE = [
@@ -203,11 +206,7 @@
 
       # Override recipe.
       drone_properties['recipe'] = build['recipe']
-      bucket = self.m.buildbucket.build.builder.bucket
-      environment = ENVIRONMENTS_MAP.get(bucket, '')
-      builder_name = build.get(
-          'drone_builder_name',
-          '%s %sEngine Drone' % (platform_name, environment))
+      builder_name = self._drone_name(build)
       suffix = drone_properties.get('builder_name_suffix')
       if suffix:
         builder_name = '%s%s' % (builder_name, suffix)
@@ -252,6 +251,26 @@
       )
     return results
 
+  def _drone_name(self, build):
+    """Calculates the drone name to use for a build.
+
+    Args:
+      build: A build configuration dictionary.
+    """
+    dimensions = build.get('drone_dimensions', [])
+    platform_name = ''
+    for d in dimensions:
+      if d.startswith('os='):
+        platform_name = PLATFORM_TO_NAME.get((d[:OS_DIM_CHAR_SIZE]).lower())
+        break
+    platform_name = build.get('platform') or platform_name
+    bucket = self.m.buildbucket.build.builder.bucket
+    environment = ENVIRONMENTS_MAP.get(bucket, '')
+    return build.get(
+        'drone_builder_name',
+        '%s %sEngine Drone' % (platform_name, environment)
+    )
+
   def _schedule_with_bb(self, builds, branch='main'):
     """Schedules builds using builbbucket.
 
@@ -277,14 +296,7 @@
       # ci.yaml provided dimensions.
       ci_yaml_dimensions = build.get('dimensions', {})
       task_dimensions = []
-      platform_name = build.get('platform') or PLATFORM_TO_NAME.get(
-          self.m.platform.name
-      )
-      bucket = self.m.buildbucket.build.builder.bucket
-      environment = ENVIRONMENTS_MAP.get(bucket, '')
-      builder_name = build.get(
-          'drone_builder_name',
-          '%s %sEngine Drone' % (platform_name, environment))
+      builder_name = self._drone_name(build)
       suffix = drone_properties.get('builder_name_suffix')
       if suffix:
         builder_name = '%s%s' % (builder_name, suffix)
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 2831ea0..1660800 100644
--- a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_bb.json
+++ b/recipe_modules/shard_util_v2/examples/full.expected/presubmit_bb.json
@@ -24,7 +24,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"custom drone builder-try\", \"project\": \"fuchsia\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"dimension1\", \"value\": \"abc\"}], \"exe\": {\"cipdVersion\": \"refs/heads/main\"}, \"executionTimeout\": \"7200s\", \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gerritChanges\": [{\"change\": \"123456\", \"host\": \"fuchsia-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"fuchsia\"}], \"priority\": 30, \"properties\": {\"build\": {\"dimensions\": {\"cpu\": \"arm64\"}, \"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\": []}, \"recipe\": \"engine_v2/builder\"}, \"builder_name_suffix\": \"-try\", \"environment\": \"Staging\", \"gclient_variables\": {}, \"git_ref\": \"refs/123/master\", \"git_url\": \"http://abc\", \"no_goma\": \"true\", \"recipe\": \"engine_v2/builder\", \"task_name\": \"mytask\", \"tests\": [{\"dependencies\": [\"ios_debug\"], \"name\": \"felt_test\", \"parameters\": [\"test\"], \"scripts\": [\"out/script.sh\"]}]}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"custom drone builder-try\", \"project\": \"fuchsia\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"dimension1\", \"value\": \"abc\"}, {\"key\": \"os\", \"value\": \"Windows-10\"}], \"exe\": {\"cipdVersion\": \"refs/heads/main\"}, \"executionTimeout\": \"7200s\", \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gerritChanges\": [{\"change\": \"123456\", \"host\": \"fuchsia-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"fuchsia\"}], \"priority\": 30, \"properties\": {\"build\": {\"dimensions\": {\"cpu\": \"arm64\"}, \"drone_builder_name\": \"custom drone builder\", \"drone_dimensions\": [\"dimension1=abc\", \"os=Windows-10\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"builder_name_suffix\": \"-try\", \"environment\": \"Staging\", \"gclient_variables\": {}, \"git_ref\": \"refs/123/master\", \"git_url\": \"http://abc\", \"no_goma\": \"true\", \"recipe\": \"engine_v2/builder\", \"task_name\": \"mytask\", \"tests\": [{\"dependencies\": [\"ios_debug\"], \"name\": \"felt_test\", \"parameters\": [\"test\"], \"scripts\": [\"out/script.sh\"]}]}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -59,6 +59,10 @@
       "@@@STEP_LOG_LINE@request@          {@@@",
       "@@@STEP_LOG_LINE@request@            \"key\": \"dimension1\", @@@",
       "@@@STEP_LOG_LINE@request@            \"value\": \"abc\"@@@",
+      "@@@STEP_LOG_LINE@request@          }, @@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Windows-10\"@@@",
       "@@@STEP_LOG_LINE@request@          }@@@",
       "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
@@ -86,7 +90,8 @@
       "@@@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@              \"dimension1=abc\", @@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Windows-10\"@@@",
       "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"generators\": [@@@",
       "@@@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 6327273..657332c 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
@@ -50,7 +50,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={\"dimensions\": {\"cpu\": \"arm64\"}, \"drone_builder_name\": \"custom drone builder\", \"drone_dimensions\": [\"dimension1=abc\"], \"gn\": [], \"name\": \"ios_debug\", \"ninja\": [\"ios_debug\"], \"recipe\": \"engine_v2/builder\"}",
+      "build={\"dimensions\": {\"cpu\": \"arm64\"}, \"drone_builder_name\": \"custom drone builder\", \"drone_dimensions\": [\"dimension1=abc\", \"os=Linux\"], \"gn\": [], \"name\": \"ios_debug\", \"ninja\": [\"ios_debug\"], \"recipe\": \"engine_v2/builder\"}",
       "-p",
       "builder_name_suffix=\"-try\"",
       "-p",
@@ -159,7 +159,8 @@
       "@@@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@                \"dimension1=abc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"os=Linux\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ],@@@",
       "@@@STEP_LOG_LINE@proto.output@              \"gn\": [],@@@",
       "@@@STEP_LOG_LINE@proto.output@              \"name\": \"ios_debug\",@@@",
@@ -218,7 +219,7 @@
       }
     },
     "name": "launch builds.led edit (2)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    }\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dimensions\": {\n                \"cpu\": \"arm64\"\n              },\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\",\n                \"os=Linux\"\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\": \"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@{@@@",
@@ -296,7 +297,8 @@
       "@@@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@                \"dimension1=abc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"os=Linux\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ],@@@",
       "@@@STEP_LOG_LINE@proto.output@              \"gn\": [],@@@",
       "@@@STEP_LOG_LINE@proto.output@              \"name\": \"ios_debug\",@@@",
@@ -356,7 +358,7 @@
       }
     },
     "name": "launch builds.led edit (3)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dimensions\": {\n                \"cpu\": \"arm64\"\n              },\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\",\n                \"os=Linux\"\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\": \"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@{@@@",
@@ -434,7 +436,8 @@
       "@@@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@                \"dimension1=abc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"os=Linux\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ],@@@",
       "@@@STEP_LOG_LINE@proto.output@              \"gn\": [],@@@",
       "@@@STEP_LOG_LINE@proto.output@              \"name\": \"ios_debug\",@@@",
@@ -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\": \"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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dimensions\": {\n                \"cpu\": \"arm64\"\n              },\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\",\n                \"os=Linux\"\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\": \"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@{@@@",
@@ -572,7 +575,8 @@
       "@@@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@                \"dimension1=abc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"os=Linux\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ],@@@",
       "@@@STEP_LOG_LINE@proto.output@              \"gn\": [],@@@",
       "@@@STEP_LOG_LINE@proto.output@              \"name\": \"ios_debug\",@@@",
@@ -632,7 +636,7 @@
       }
     },
     "name": "launch builds.led edit (5)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dimensions\": {\n                \"cpu\": \"arm64\"\n              },\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\",\n                \"os=Linux\"\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\": \"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@{@@@",
@@ -710,7 +714,147 @@
       "@@@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@                \"dimension1=abc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"os=Linux\"@@@",
+      "@@@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\": \"refs/123/master\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@            \"git_url\": \"http://abc\",@@@",
+      "@@@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",
+      "os=Linux"
+    ],
+    "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                \"os=Linux\"\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\": \"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@{@@@",
+      "@@@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@                \"os=Linux\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ],@@@",
       "@@@STEP_LOG_LINE@proto.output@              \"gn\": [],@@@",
       "@@@STEP_LOG_LINE@proto.output@              \"name\": \"ios_debug\",@@@",
@@ -769,8 +913,8 @@
         "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\": \"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}",
+    "name": "launch builds.led edit (7)",
+    "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                \"os=Linux\"\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\": \"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@{@@@",
@@ -867,7 +1011,8 @@
       "@@@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@                \"dimension1=abc\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@                \"os=Linux\"@@@",
       "@@@STEP_LOG_LINE@proto.output@              ],@@@",
       "@@@STEP_LOG_LINE@proto.output@              \"gn\": [],@@@",
       "@@@STEP_LOG_LINE@proto.output@              \"name\": \"ios_debug\",@@@",
@@ -926,7 +1071,7 @@
       }
     },
     "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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"custom drone builder-try\",\n          \"project\": \"proj\"\n        },\n        \"infra\": {\n          \"buildbucket\": {\n            \"agent\": {\n              \"input\": {\n                \"data\": {\n                  \"kitchen-checkout\": {\n                    \"cas\": {\n                      \"digest\": {\n                        \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                        \"size_bytes\": \"91\"\n                      }\n                    }\n                  }\n                }\n              },\n              \"purposes\": {\n                \"kitchen-checkout\": \"PURPOSE_EXE_PAYLOAD\"\n              }\n            }\n          },\n          \"swarming\": {\n            \"priority\": -20\n          }\n        },\n        \"input\": {\n          \"properties\": {\n            \"$recipe_engine/buildbucket\": {\n              \"build\": {\n                \"builder\": {\n                  \"bucket\": \"try\",\n                  \"builder\": \"try-builder\",\n                  \"project\": \"proj\"\n                },\n                \"createTime\": \"2018-05-25T23:50:17Z\",\n                \"createdBy\": \"project:proj\",\n                \"id\": \"8945511751514863184\",\n                \"infra\": {\n                  \"resultdb\": {\n                    \"invocation\": \"invocations/build:8945511751514863184\"\n                  },\n                  \"swarming\": {\n                    \"priority\": 30.0\n                  }\n                },\n                \"input\": {\n                  \"gerritChanges\": [\n                    {\n                      \"change\": \"123456\",\n                      \"host\": \"github.com\",\n                      \"patchset\": \"7\",\n                      \"project\": \"repo/a\"\n                    }\n                  ],\n                  \"gitilesCommit\": {\n                    \"host\": \"github.com\",\n                    \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                    \"project\": \"repo/a\",\n                    \"ref\": \"refs/heads/main\"\n                  }\n                },\n                \"number\": 123.0,\n                \"tags\": [\n                  {\n                    \"key\": \"cq_experimental\",\n                    \"value\": \"false\"\n                  }\n                ]\n              }\n            },\n            \"$recipe_engine/led\": {\n              \"led_run_id\": \"flutter/led/abc_google.com/b9861e3db1034eee460599837221ab468e03bc43f9fd05684a08157fd646abfc\",\n              \"rbe_cas_input\": {\n                \"cas_instance\": \"projects/chromium-swarm/instances/default_instance\",\n                \"digest\": {\n                  \"hash\": \"146d56311043bb141309968d570e23d05a108d13ce2e20b5aeb40a9b95629b3e\",\n                  \"size_bytes\": 91.0\n                }\n              }\n            },\n            \"build\": {\n              \"dimensions\": {\n                \"cpu\": \"arm64\"\n              },\n              \"drone_builder_name\": \"custom drone builder\",\n              \"drone_dimensions\": [\n                \"dimension1=abc\",\n                \"os=Linux\"\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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/builder\",\n            \"task_name\": \"ios_debug\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"ios_debug\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -1475,7 +1620,7 @@
       "led",
       "get-builder",
       "-real-build",
-      "proj/try/Linux Engine Drone-try"
+      "proj/try/ Engine Drone-try"
     ],
     "luci_context": {
       "realm": {
@@ -1498,7 +1643,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \" Engine Drone-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        }@@@",
       "@@@STEP_LOG_LINE@proto.output@      }@@@",
@@ -1548,7 +1693,7 @@
       }
     },
     "name": "launch builds (2).led edit",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-try\",\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\": \" 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@{@@@",
@@ -1557,7 +1702,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \" Engine Drone-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -1689,7 +1834,7 @@
       }
     },
     "name": "launch builds (2).led edit (2)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    }\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \" 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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    }\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -1698,7 +1843,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \" Engine Drone-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -1831,7 +1976,7 @@
       }
     },
     "name": "launch builds (2).led edit (3)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \" 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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -1840,7 +1985,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \" Engine Drone-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -1973,7 +2118,7 @@
       }
     },
     "name": "launch builds (2).led edit (4)",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \" 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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@proto.output@{@@@",
@@ -1982,7 +2127,7 @@
       "@@@STEP_LOG_LINE@proto.output@      \"build\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"bucket\": \"try\",@@@",
-      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \"Linux Engine Drone-try\",@@@",
+      "@@@STEP_LOG_LINE@proto.output@          \"builder\": \" Engine Drone-try\",@@@",
       "@@@STEP_LOG_LINE@proto.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@proto.output@        },@@@",
       "@@@STEP_LOG_LINE@proto.output@        \"infra\": {@@@",
@@ -2133,7 +2278,7 @@
       }
     },
     "name": "launch builds (2).led launch",
-    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \"Linux Engine Drone-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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
+    "stdin": "{\n  \"buildbucket\": {\n    \"bbagent_args\": {\n      \"build\": {\n        \"builder\": {\n          \"bucket\": \"try\",\n          \"builder\": \" 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\": \"refs/123/master\",\n            \"git_url\": \"http://abc\",\n            \"recipe\": \"engine_v2/tester\",\n            \"task_name\": \"felt_test\",\n            \"tests\": [\n              {\n                \"dependencies\": [\n                  \"ios_debug\"\n                ],\n                \"name\": \"felt_test\",\n                \"parameters\": [\n                  \"test\"\n                ],\n                \"scripts\": [\n                  \"out/script.sh\"\n                ]\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"name\": \"felt_test\"\n  }\n}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
diff --git a/recipe_modules/shard_util_v2/examples/full.py b/recipe_modules/shard_util_v2/examples/full.py
index e11534a..32a2562 100644
--- a/recipe_modules/shard_util_v2/examples/full.py
+++ b/recipe_modules/shard_util_v2/examples/full.py
@@ -73,7 +73,7 @@
       'builds': [{
           'name': 'ios_debug', 'gn': [], 'ninja': ['ios_debug'],
           'dimensions': {'cpu': 'arm64'},
-          'drone_dimensions': ['dimension1=abc']
+          'drone_dimensions': ['dimension1=abc', 'os=Linux']
       }],
       'tests': [{
           'name': 'felt_test', 'dependencies': ['ios_debug'],
@@ -100,10 +100,9 @@
   }
   props_bb = {
       'task_name': 'mytask', 'builds': [{
-          'name': 'ios_debug', 'gn': ['--ios'],
-          'dimensions': {'cpu': 'arm64'},
-          'ninja': {'config': 'ios_debug',
-                    'targets': []}, 'drone_dimensions': ['dimension1=abc'],
+          'name': 'ios_debug', 'gn': ['--ios'], 'dimensions': {'cpu': 'arm64'},
+          'ninja': {'config': 'ios_debug', 'targets': []},
+          'drone_dimensions': ['dimension1=abc', 'os=Windows-10'],
           'generators': [{'name': 'generator1', 'script': 'script1.sh'}]
       }], 'tests': [{
           'name': 'felt_test', 'dependencies': ['ios_debug'],
diff --git a/recipes/devicelab/devicelab_drone_build_test.expected/artifact does not exist.json b/recipes/devicelab/devicelab_drone_build_test.expected/artifact does not exist.json
index 641e824..2261493 100644
--- a/recipes/devicelab/devicelab_drone_build_test.expected/artifact does not exist.json
+++ b/recipes/devicelab/devicelab_drone_build_test.expected/artifact does not exist.json
@@ -813,7 +813,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"Linux Engine Drone\", \"project\": \"test\"}, \"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\", \"gitilesCommit\": {\"host\": \"git.example.com\", \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", \"project\": \"test/repo\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"def\", \"build\": {\"drone_dimensions\": [], \"name\": \"abc\", \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"def\", \"dependencies\": [], \"git_branch\": \"master\", \"parent_builder\": \"Linux abc\", \"tags\": [], \"task_name\": \"abc\"}, \"recipe\": \"devicelab/devicelab_test_drone\"}, \"dependencies\": [], \"gclient_variables\": {}, \"git_branch\": \"master\", \"git_ref\": \"refs/pull/1/head\", \"parent_builder\": \"Linux abc\", \"recipe\": \"devicelab/devicelab_test_drone\", \"tags\": [], \"task_name\": \"abc\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"Linux Engine Drone\", \"project\": \"test\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"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\", \"gitilesCommit\": {\"host\": \"git.example.com\", \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", \"project\": \"test/repo\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"def\", \"build\": {\"drone_dimensions\": [\"os=Linux\"], \"name\": \"abc\", \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"def\", \"dependencies\": [], \"git_branch\": \"master\", \"parent_builder\": \"Linux abc\", \"tags\": [], \"task_name\": \"abc\"}, \"recipe\": \"devicelab/devicelab_test_drone\"}, \"dependencies\": [], \"drone_dimensions\": [\"os=Linux\"], \"gclient_variables\": {}, \"git_branch\": \"master\", \"git_ref\": \"refs/pull/1/head\", \"parent_builder\": \"Linux abc\", \"recipe\": \"devicelab/devicelab_test_drone\", \"tags\": [], \"task_name\": \"abc\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -840,6 +840,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"test\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -861,7 +867,9 @@
       "@@@STEP_LOG_LINE@request@          }, @@@",
       "@@@STEP_LOG_LINE@request@          \"artifact\": \"def\", @@@",
       "@@@STEP_LOG_LINE@request@          \"build\": {@@@",
-      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"name\": \"abc\", @@@",
       "@@@STEP_LOG_LINE@request@            \"properties\": {@@@",
       "@@@STEP_LOG_LINE@request@              \"$flutter/osx_sdk\": {@@@",
@@ -877,6 +885,9 @@
       "@@@STEP_LOG_LINE@request@            \"recipe\": \"devicelab/devicelab_test_drone\"@@@",
       "@@@STEP_LOG_LINE@request@          }, @@@",
       "@@@STEP_LOG_LINE@request@          \"dependencies\": [], @@@",
+      "@@@STEP_LOG_LINE@request@          \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@            \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          ], @@@",
       "@@@STEP_LOG_LINE@request@          \"gclient_variables\": {}, @@@",
       "@@@STEP_LOG_LINE@request@          \"git_branch\": \"master\", @@@",
       "@@@STEP_LOG_LINE@request@          \"git_ref\": \"refs/pull/1/head\", @@@",
diff --git a/recipes/devicelab/devicelab_drone_build_test.expected/artifact exists.json b/recipes/devicelab/devicelab_drone_build_test.expected/artifact exists.json
index 89e9d93..55c6620 100644
--- a/recipes/devicelab/devicelab_drone_build_test.expected/artifact exists.json
+++ b/recipes/devicelab/devicelab_drone_build_test.expected/artifact exists.json
@@ -38,7 +38,7 @@
     ],
     "infra_step": true,
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"builder\": \"Linux Engine Drone\"}, \"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\", \"priority\": 30, \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"def\", \"build\": {\"drone_dimensions\": [], \"name\": \"abc\", \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"def\", \"dependencies\": [], \"git_branch\": \"master\", \"parent_builder\": \"Linux abc\", \"tags\": [], \"task_name\": \"abc\"}, \"recipe\": \"devicelab/devicelab_test_drone\"}, \"dependencies\": [], \"gclient_variables\": {}, \"git_branch\": \"master\", \"git_ref\": \"refs/pull/1/head\", \"git_url\": \"test/repo\", \"parent_builder\": \"Linux abc\", \"recipe\": \"devicelab/devicelab_test_drone\", \"tags\": [], \"task_name\": \"abc\"}, \"requestId\": \"0-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"0\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"builder\": \"Linux Engine Drone\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"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\", \"priority\": 30, \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"def\", \"build\": {\"drone_dimensions\": [\"os=Linux\"], \"name\": \"abc\", \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"def\", \"dependencies\": [], \"git_branch\": \"master\", \"parent_builder\": \"Linux abc\", \"tags\": [], \"task_name\": \"abc\"}, \"recipe\": \"devicelab/devicelab_test_drone\"}, \"dependencies\": [], \"drone_dimensions\": [\"os=Linux\"], \"gclient_variables\": {}, \"git_branch\": \"master\", \"git_ref\": \"refs/pull/1/head\", \"git_url\": \"test/repo\", \"parent_builder\": \"Linux abc\", \"recipe\": \"devicelab/devicelab_test_drone\", \"tags\": [], \"task_name\": \"abc\"}, \"requestId\": \"0-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"0\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -61,6 +61,12 @@
       "@@@STEP_LOG_LINE@request@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -76,7 +82,9 @@
       "@@@STEP_LOG_LINE@request@          }, @@@",
       "@@@STEP_LOG_LINE@request@          \"artifact\": \"def\", @@@",
       "@@@STEP_LOG_LINE@request@          \"build\": {@@@",
-      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"name\": \"abc\", @@@",
       "@@@STEP_LOG_LINE@request@            \"properties\": {@@@",
       "@@@STEP_LOG_LINE@request@              \"$flutter/osx_sdk\": {@@@",
@@ -92,6 +100,9 @@
       "@@@STEP_LOG_LINE@request@            \"recipe\": \"devicelab/devicelab_test_drone\"@@@",
       "@@@STEP_LOG_LINE@request@          }, @@@",
       "@@@STEP_LOG_LINE@request@          \"dependencies\": [], @@@",
+      "@@@STEP_LOG_LINE@request@          \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@            \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          ], @@@",
       "@@@STEP_LOG_LINE@request@          \"gclient_variables\": {}, @@@",
       "@@@STEP_LOG_LINE@request@          \"git_branch\": \"master\", @@@",
       "@@@STEP_LOG_LINE@request@          \"git_ref\": \"refs/pull/1/head\", @@@",
diff --git a/recipes/devicelab/devicelab_drone_build_test.expected/local-engine.json b/recipes/devicelab/devicelab_drone_build_test.expected/local-engine.json
index e1e2415..1833830 100644
--- a/recipes/devicelab/devicelab_drone_build_test.expected/local-engine.json
+++ b/recipes/devicelab/devicelab_drone_build_test.expected/local-engine.json
@@ -984,7 +984,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"Linux Engine Drone\", \"project\": \"test\"}, \"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\", \"gitilesCommit\": {\"host\": \"git.example.com\", \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", \"project\": \"test/repo\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"def\", \"build\": {\"drone_dimensions\": [], \"name\": \"abc\", \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"def\", \"dependencies\": [], \"git_branch\": \"master\", \"parent_builder\": \"Linux abc\", \"tags\": [], \"task_name\": \"abc\"}, \"recipe\": \"devicelab/devicelab_test_drone\"}, \"dependencies\": [], \"gclient_variables\": {}, \"git_branch\": \"master\", \"local_engine\": \"host-release\", \"local_engine_cas_hash\": \"isolatehashlocalengine/22\", \"parent_builder\": \"Linux abc\", \"recipe\": \"devicelab/devicelab_test_drone\", \"tags\": [], \"task_name\": \"abc\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"Linux Engine Drone\", \"project\": \"test\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"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\", \"gitilesCommit\": {\"host\": \"git.example.com\", \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", \"project\": \"test/repo\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"def\", \"build\": {\"drone_dimensions\": [\"os=Linux\"], \"name\": \"abc\", \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"def\", \"dependencies\": [], \"git_branch\": \"master\", \"parent_builder\": \"Linux abc\", \"tags\": [], \"task_name\": \"abc\"}, \"recipe\": \"devicelab/devicelab_test_drone\"}, \"dependencies\": [], \"drone_dimensions\": [\"os=Linux\"], \"gclient_variables\": {}, \"git_branch\": \"master\", \"local_engine\": \"host-release\", \"local_engine_cas_hash\": \"isolatehashlocalengine/22\", \"parent_builder\": \"Linux abc\", \"recipe\": \"devicelab/devicelab_test_drone\", \"tags\": [], \"task_name\": \"abc\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -1011,6 +1011,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"test\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -1032,7 +1038,9 @@
       "@@@STEP_LOG_LINE@request@          }, @@@",
       "@@@STEP_LOG_LINE@request@          \"artifact\": \"def\", @@@",
       "@@@STEP_LOG_LINE@request@          \"build\": {@@@",
-      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"name\": \"abc\", @@@",
       "@@@STEP_LOG_LINE@request@            \"properties\": {@@@",
       "@@@STEP_LOG_LINE@request@              \"$flutter/osx_sdk\": {@@@",
@@ -1048,6 +1056,9 @@
       "@@@STEP_LOG_LINE@request@            \"recipe\": \"devicelab/devicelab_test_drone\"@@@",
       "@@@STEP_LOG_LINE@request@          }, @@@",
       "@@@STEP_LOG_LINE@request@          \"dependencies\": [], @@@",
+      "@@@STEP_LOG_LINE@request@          \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@            \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          ], @@@",
       "@@@STEP_LOG_LINE@request@          \"gclient_variables\": {}, @@@",
       "@@@STEP_LOG_LINE@request@          \"git_branch\": \"master\", @@@",
       "@@@STEP_LOG_LINE@request@          \"local_engine\": \"host-release\", @@@",
diff --git a/recipes/devicelab/devicelab_drone_build_test.expected/xcode-mac.json b/recipes/devicelab/devicelab_drone_build_test.expected/xcode-mac.json
index 3787f73..c065110 100644
--- a/recipes/devicelab/devicelab_drone_build_test.expected/xcode-mac.json
+++ b/recipes/devicelab/devicelab_drone_build_test.expected/xcode-mac.json
@@ -1314,7 +1314,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"Mac Engine Drone\", \"project\": \"project\"}, \"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\", \"gitilesCommit\": {\"host\": \"chromium.googlesource.com\", \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", \"project\": \"project\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"abc\", \"build\": {\"drone_dimensions\": [], \"name\": \"abc\", \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"abc\", \"dependencies\": [{\"dependency\": \"xcode\"}], \"git_branch\": \"master\", \"parent_builder\": \"Mac_ios abc\", \"tags\": [\"ios\"], \"task_name\": \"abc\"}, \"recipe\": \"devicelab/devicelab_test_drone\"}, \"dependencies\": [{\"dependency\": \"xcode\"}], \"gclient_variables\": {}, \"git_branch\": \"master\", \"parent_builder\": \"Mac_ios abc\", \"recipe\": \"devicelab/devicelab_test_drone\", \"tags\": [\"ios\"], \"task_name\": \"abc\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"Mac Engine Drone\", \"project\": \"project\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Mac\"}], \"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\", \"gitilesCommit\": {\"host\": \"chromium.googlesource.com\", \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", \"project\": \"project\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"abc\", \"build\": {\"drone_dimensions\": [\"os=Mac\"], \"name\": \"abc\", \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": null}, \"artifact\": \"abc\", \"dependencies\": [{\"dependency\": \"xcode\"}], \"git_branch\": \"master\", \"parent_builder\": \"Mac_ios abc\", \"tags\": [\"ios\"], \"task_name\": \"abc\"}, \"recipe\": \"devicelab/devicelab_test_drone\"}, \"dependencies\": [{\"dependency\": \"xcode\"}], \"drone_dimensions\": [\"os=Mac\"], \"gclient_variables\": {}, \"git_branch\": \"master\", \"parent_builder\": \"Mac_ios abc\", \"recipe\": \"devicelab/devicelab_test_drone\", \"tags\": [\"ios\"], \"task_name\": \"abc\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -1341,6 +1341,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Mac Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"project\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Mac\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -1362,7 +1368,9 @@
       "@@@STEP_LOG_LINE@request@          }, @@@",
       "@@@STEP_LOG_LINE@request@          \"artifact\": \"abc\", @@@",
       "@@@STEP_LOG_LINE@request@          \"build\": {@@@",
-      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Mac\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"name\": \"abc\", @@@",
       "@@@STEP_LOG_LINE@request@            \"properties\": {@@@",
       "@@@STEP_LOG_LINE@request@              \"$flutter/osx_sdk\": {@@@",
@@ -1388,6 +1396,9 @@
       "@@@STEP_LOG_LINE@request@              \"dependency\": \"xcode\"@@@",
       "@@@STEP_LOG_LINE@request@            }@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",
+      "@@@STEP_LOG_LINE@request@          \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@            \"os=Mac\"@@@",
+      "@@@STEP_LOG_LINE@request@          ], @@@",
       "@@@STEP_LOG_LINE@request@          \"gclient_variables\": {}, @@@",
       "@@@STEP_LOG_LINE@request@          \"git_branch\": \"master\", @@@",
       "@@@STEP_LOG_LINE@request@          \"parent_builder\": \"Mac_ios abc\", @@@",
diff --git a/recipes/devicelab/devicelab_drone_build_test.py b/recipes/devicelab/devicelab_drone_build_test.py
index 26e99e8..a4aa2e5 100644
--- a/recipes/devicelab/devicelab_drone_build_test.py
+++ b/recipes/devicelab/devicelab_drone_build_test.py
@@ -216,6 +216,7 @@
       "artifact exists",
       api.properties(
           buildername='Linux abc',
+          drone_dimensions=['os=Linux'],
           task_name='abc',
           git_branch='master',
           artifact='def',
@@ -233,6 +234,7 @@
       "artifact does not exist",
       api.properties(
           buildername='Linux abc',
+          drone_dimensions=['os=Linux'],
           task_name='abc',
           git_branch='master',
           artifact='def',
@@ -248,6 +250,7 @@
       "local-engine",
       api.properties(
           buildername='Linux abc',
+          drone_dimensions=['os=Linux'],
           task_name='abc',
           artifact='def',
           local_engine_cas_hash='isolatehashlocalengine/22',
@@ -264,6 +267,7 @@
       "xcode-mac",
       api.properties(
           buildername='Mac_ios abc',
+          drone_dimensions=['os=Mac'],
           task_name='abc',
           tags=['ios'],
           dependencies=[{'dependency': 'xcode'}],
diff --git a/recipes/engine/web_engine.expected/basic.json b/recipes/engine/web_engine.expected/basic.json
index abe419d..983abd6 100644
--- a/recipes/engine/web_engine.expected/basic.json
+++ b/recipes/engine/web_engine.expected/basic.json
@@ -1078,7 +1078,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"proj\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"command_args\": [\"test\", \"--browser=chrome\", \"--require-skia-gold\"], \"command_name\": \"chrome-unit-linux\", \"inherited_dependencies\": [], \"local_engine_cas_hash\": \"\", \"name\": \"chrome-unit-linux\", \"recipe\": \"engine/web_engine_drone\", \"wasm_release_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}, \"clobber\": true, \"gclient_variables\": {}, \"recipe\": \"engine/web_engine_drone\"}, \"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\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"proj\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"command_args\": [\"test\", \"--browser=chrome\", \"--require-skia-gold\", \"--use-local-canvaskit\"], \"command_name\": \"chrome-unit-linux-canvaskit\", \"inherited_dependencies\": [], \"local_engine_cas_hash\": \"\", \"name\": \"chrome-unit-linux-canvaskit\", \"recipe\": \"engine/web_engine_drone\", \"wasm_release_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}, \"clobber\": true, \"gclient_variables\": {}, \"recipe\": \"engine/web_engine_drone\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"proj\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"command_args\": [\"test\", \"--browser=chrome\", \"--require-skia-gold\", \"--wasm\"], \"command_name\": \"chrome-unit-linux-wasm\", \"inherited_dependencies\": [], \"local_engine_cas_hash\": \"\", \"name\": \"chrome-unit-linux-wasm\", \"recipe\": \"engine/web_engine_drone\", \"wasm_release_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}, \"clobber\": true, \"gclient_variables\": {}, \"recipe\": \"engine/web_engine_drone\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133d\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"proj\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"command_args\": [\"test\", \"--browser=firefox\"], \"command_name\": \"firefox-unit-linux\", \"inherited_dependencies\": [], \"local_engine_cas_hash\": \"\", \"name\": \"firefox-unit-linux\", \"recipe\": \"engine/web_engine_drone\", \"wasm_release_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}, \"clobber\": true, \"gclient_variables\": {}, \"recipe\": \"engine/web_engine_drone\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001340\", \"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\": \" Engine Drone\", \"project\": \"proj\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"command_args\": [\"test\", \"--browser=chrome\", \"--require-skia-gold\"], \"command_name\": \"chrome-unit-linux\", \"inherited_dependencies\": [], \"local_engine_cas_hash\": \"\", \"name\": \"chrome-unit-linux\", \"recipe\": \"engine/web_engine_drone\", \"wasm_release_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}, \"clobber\": true, \"gclient_variables\": {}, \"recipe\": \"engine/web_engine_drone\"}, \"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\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \" Engine Drone\", \"project\": \"proj\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"command_args\": [\"test\", \"--browser=chrome\", \"--require-skia-gold\", \"--use-local-canvaskit\"], \"command_name\": \"chrome-unit-linux-canvaskit\", \"inherited_dependencies\": [], \"local_engine_cas_hash\": \"\", \"name\": \"chrome-unit-linux-canvaskit\", \"recipe\": \"engine/web_engine_drone\", \"wasm_release_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}, \"clobber\": true, \"gclient_variables\": {}, \"recipe\": \"engine/web_engine_drone\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \" Engine Drone\", \"project\": \"proj\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"command_args\": [\"test\", \"--browser=chrome\", \"--require-skia-gold\", \"--wasm\"], \"command_name\": \"chrome-unit-linux-wasm\", \"inherited_dependencies\": [], \"local_engine_cas_hash\": \"\", \"name\": \"chrome-unit-linux-wasm\", \"recipe\": \"engine/web_engine_drone\", \"wasm_release_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}, \"clobber\": true, \"gclient_variables\": {}, \"recipe\": \"engine/web_engine_drone\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133d\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"proj\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"command_args\": [\"test\", \"--browser=firefox\"], \"command_name\": \"firefox-unit-linux\", \"drone_dimensions\": [\"os=Linux\"], \"inherited_dependencies\": [], \"local_engine_cas_hash\": \"\", \"name\": \"firefox-unit-linux\", \"recipe\": \"engine/web_engine_drone\", \"wasm_release_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}, \"clobber\": true, \"gclient_variables\": {}, \"recipe\": \"engine/web_engine_drone\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001340\", \"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@{@@@",
@@ -1087,7 +1087,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"scheduleBuild\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"bucket\": \"try\", @@@",
-      "@@@STEP_LOG_LINE@json.output@          \"builder\": \"Linux Engine Drone\", @@@",
+      "@@@STEP_LOG_LINE@json.output@          \"builder\": \" Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@json.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }, @@@",
       "@@@STEP_LOG_LINE@json.output@        \"id\": \"8922054662172514000\"@@@",
@@ -1097,7 +1097,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"scheduleBuild\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"bucket\": \"try\", @@@",
-      "@@@STEP_LOG_LINE@json.output@          \"builder\": \"Linux Engine Drone\", @@@",
+      "@@@STEP_LOG_LINE@json.output@          \"builder\": \" Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@json.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }, @@@",
       "@@@STEP_LOG_LINE@json.output@        \"id\": \"8922054662172514001\"@@@",
@@ -1107,7 +1107,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"scheduleBuild\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"bucket\": \"try\", @@@",
-      "@@@STEP_LOG_LINE@json.output@          \"builder\": \"Linux Engine Drone\", @@@",
+      "@@@STEP_LOG_LINE@json.output@          \"builder\": \" Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@json.output@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }, @@@",
       "@@@STEP_LOG_LINE@json.output@        \"id\": \"8922054662172514002\"@@@",
@@ -1132,7 +1132,7 @@
       "@@@STEP_LOG_LINE@request@      \"scheduleBuild\": {@@@",
       "@@@STEP_LOG_LINE@request@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"bucket\": \"try\", @@@",
-      "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
+      "@@@STEP_LOG_LINE@request@          \"builder\": \" Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
@@ -1200,7 +1200,7 @@
       "@@@STEP_LOG_LINE@request@      \"scheduleBuild\": {@@@",
       "@@@STEP_LOG_LINE@request@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"bucket\": \"try\", @@@",
-      "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
+      "@@@STEP_LOG_LINE@request@          \"builder\": \" Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
@@ -1269,7 +1269,7 @@
       "@@@STEP_LOG_LINE@request@      \"scheduleBuild\": {@@@",
       "@@@STEP_LOG_LINE@request@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"bucket\": \"try\", @@@",
-      "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
+      "@@@STEP_LOG_LINE@request@          \"builder\": \" Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
@@ -1341,6 +1341,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -1371,6 +1377,9 @@
       "@@@STEP_LOG_LINE@request@              \"--browser=firefox\"@@@",
       "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"command_name\": \"firefox-unit-linux\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"inherited_dependencies\": [], @@@",
       "@@@STEP_LOG_LINE@request@            \"local_engine_cas_hash\": \"\", @@@",
       "@@@STEP_LOG_LINE@request@            \"name\": \"firefox-unit-linux\", @@@",
diff --git a/recipes/engine/web_engine.py b/recipes/engine/web_engine.py
index cd60bc8..491d3d0 100644
--- a/recipes/engine/web_engine.py
+++ b/recipes/engine/web_engine.py
@@ -183,6 +183,7 @@
   # These are the felt commands which will be used.
   properties['command_args'] = ['test', '--browser=firefox']
   properties['recipe'] = 'engine/web_engine_drone'
+  properties['drone_dimensions'] = ['os=Linux']
   targets.append(properties)
   return targets
 
diff --git a/recipes/engine/web_engine_framework.expected/linux-pre-submit.json b/recipes/engine/web_engine_framework.expected/linux-pre-submit.json
index 12f9275..9d58131 100644
--- a/recipes/engine/web_engine_framework.expected/linux-pre-submit.json
+++ b/recipes/engine/web_engine_framework.expected/linux-pre-submit.json
@@ -2651,7 +2651,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"flutter\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"priority\": 30, \"properties\": {\"build\": {\"drone_dimensions\": [], \"name\": \"web_tests-0\", \"properties\": {\"dependencies\": [{\"dependency\": \"chrome_and_driver\", \"version\": \"version:96.2\"}], \"git_ref\": \"b6efc758213fdfffee1234465\", \"git_url\": \"https://github.com/flutter/flutter\", \"local_web_sdk_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\", \"shard\": \"web_tests\", \"subshard\": \"0\", \"task_name\": \"web_tests-0\"}, \"recipe\": \"flutter/flutter_drone\"}, \"clobber\": true, \"dependencies\": [{\"dependency\": \"chrome_and_driver\", \"version\": \"version:96.2\"}], \"gclient_variables\": {}, \"git_branch\": \"main\", \"git_ref\": \"b6efc758213fdfffee1234465\", \"git_url\": \"https://github.com/flutter/flutter\", \"goma_jobs\": \"200\", \"local_web_sdk_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\", \"recipe\": \"flutter/flutter_drone\", \"shard\": \"web_tests\", \"subshard\": \"0\", \"subshards\": [\"0\", \"1_last\"], \"task_name\": \"web_tests-0\"}, \"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\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"flutter\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"priority\": 30, \"properties\": {\"build\": {\"drone_dimensions\": [], \"name\": \"web_tests-1_last\", \"properties\": {\"dependencies\": [{\"dependency\": \"chrome_and_driver\", \"version\": \"version:96.2\"}], \"git_ref\": \"b6efc758213fdfffee1234465\", \"git_url\": \"https://github.com/flutter/flutter\", \"local_web_sdk_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\", \"shard\": \"web_tests\", \"subshard\": \"1_last\", \"task_name\": \"web_tests-1_last\"}, \"recipe\": \"flutter/flutter_drone\"}, \"clobber\": true, \"dependencies\": [{\"dependency\": \"chrome_and_driver\", \"version\": \"version:96.2\"}], \"gclient_variables\": {}, \"git_branch\": \"main\", \"git_ref\": \"b6efc758213fdfffee1234465\", \"git_url\": \"https://github.com/flutter/flutter\", \"goma_jobs\": \"200\", \"local_web_sdk_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\", \"recipe\": \"flutter/flutter_drone\", \"shard\": \"web_tests\", \"subshard\": \"1_last\", \"subshards\": [\"0\", \"1_last\"], \"task_name\": \"web_tests-1_last\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"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\": \"Linux Engine Drone\", \"project\": \"flutter\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"priority\": 30, \"properties\": {\"build\": {\"drone_dimensions\": [\"os=Linux\"], \"name\": \"web_tests-0\", \"properties\": {\"dependencies\": [{\"dependency\": \"chrome_and_driver\", \"version\": \"version:96.2\"}], \"git_ref\": \"b6efc758213fdfffee1234465\", \"git_url\": \"https://github.com/flutter/flutter\", \"local_web_sdk_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\", \"shard\": \"web_tests\", \"subshard\": \"0\", \"task_name\": \"web_tests-0\"}, \"recipe\": \"flutter/flutter_drone\"}, \"clobber\": true, \"dependencies\": [{\"dependency\": \"chrome_and_driver\", \"version\": \"version:96.2\"}], \"drone_dimensions\": [\"os=Linux\"], \"gclient_variables\": {}, \"git_branch\": \"main\", \"git_ref\": \"b6efc758213fdfffee1234465\", \"git_url\": \"https://github.com/flutter/flutter\", \"goma_jobs\": \"200\", \"local_web_sdk_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\", \"recipe\": \"flutter/flutter_drone\", \"shard\": \"web_tests\", \"subshard\": \"0\", \"subshards\": [\"0\", \"1_last\"], \"task_name\": \"web_tests-0\"}, \"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\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"flutter\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"priority\": 30, \"properties\": {\"build\": {\"drone_dimensions\": [\"os=Linux\"], \"name\": \"web_tests-1_last\", \"properties\": {\"dependencies\": [{\"dependency\": \"chrome_and_driver\", \"version\": \"version:96.2\"}], \"git_ref\": \"b6efc758213fdfffee1234465\", \"git_url\": \"https://github.com/flutter/flutter\", \"local_web_sdk_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\", \"shard\": \"web_tests\", \"subshard\": \"1_last\", \"task_name\": \"web_tests-1_last\"}, \"recipe\": \"flutter/flutter_drone\"}, \"clobber\": true, \"dependencies\": [{\"dependency\": \"chrome_and_driver\", \"version\": \"version:96.2\"}], \"drone_dimensions\": [\"os=Linux\"], \"gclient_variables\": {}, \"git_branch\": \"main\", \"git_ref\": \"b6efc758213fdfffee1234465\", \"git_url\": \"https://github.com/flutter/flutter\", \"goma_jobs\": \"200\", \"local_web_sdk_cas_hash\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\", \"recipe\": \"flutter/flutter_drone\", \"shard\": \"web_tests\", \"subshard\": \"1_last\", \"subshards\": [\"0\", \"1_last\"], \"task_name\": \"web_tests-1_last\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"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@{@@@",
@@ -2688,6 +2688,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"flutter\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -2707,7 +2713,9 @@
       "@@@STEP_LOG_LINE@request@        \"priority\": 30, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"build\": {@@@",
-      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"name\": \"web_tests-0\", @@@",
       "@@@STEP_LOG_LINE@request@            \"properties\": {@@@",
       "@@@STEP_LOG_LINE@request@              \"dependencies\": [@@@",
@@ -2732,6 +2740,9 @@
       "@@@STEP_LOG_LINE@request@              \"version\": \"version:96.2\"@@@",
       "@@@STEP_LOG_LINE@request@            }@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",
+      "@@@STEP_LOG_LINE@request@          \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@            \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          ], @@@",
       "@@@STEP_LOG_LINE@request@          \"gclient_variables\": {}, @@@",
       "@@@STEP_LOG_LINE@request@          \"git_branch\": \"main\", @@@",
       "@@@STEP_LOG_LINE@request@          \"git_ref\": \"b6efc758213fdfffee1234465\", @@@",
@@ -2774,6 +2785,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"flutter\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -2793,7 +2810,9 @@
       "@@@STEP_LOG_LINE@request@        \"priority\": 30, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"build\": {@@@",
-      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"name\": \"web_tests-1_last\", @@@",
       "@@@STEP_LOG_LINE@request@            \"properties\": {@@@",
       "@@@STEP_LOG_LINE@request@              \"dependencies\": [@@@",
@@ -2818,6 +2837,9 @@
       "@@@STEP_LOG_LINE@request@              \"version\": \"version:96.2\"@@@",
       "@@@STEP_LOG_LINE@request@            }@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",
+      "@@@STEP_LOG_LINE@request@          \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@            \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          ], @@@",
       "@@@STEP_LOG_LINE@request@          \"gclient_variables\": {}, @@@",
       "@@@STEP_LOG_LINE@request@          \"git_branch\": \"main\", @@@",
       "@@@STEP_LOG_LINE@request@          \"git_ref\": \"b6efc758213fdfffee1234465\", @@@",
diff --git a/recipes/engine/web_engine_framework.py b/recipes/engine/web_engine_framework.py
index 7bf628e..f9640bf 100644
--- a/recipes/engine/web_engine_framework.py
+++ b/recipes/engine/web_engine_framework.py
@@ -163,7 +163,10 @@
       'linux-pre-submit',
       api.repo_util.flutter_environment_data(api.path['cache'].join('flutter')),
       api.properties(
-          dependencies=[{'dependency': 'chrome_and_driver', 'version': 'version:96.2'}],
+          dependencies=[{
+              'dependency': 'chrome_and_driver', 'version': 'version:96.2'
+          }],
+          drone_dimensions=['os=Linux'],
           shard='web_tests',
           subshards=['0', '1_last'],
           goma_jobs='200',
diff --git a/recipes/engine_v2/engine_v2.expected/basic_linux.json b/recipes/engine_v2/engine_v2.expected/basic_linux.json
index 8364c19..64a52a7 100644
--- a/recipes/engine_v2/engine_v2.expected/basic_linux.json
+++ b/recipes/engine_v2/engine_v2.expected/basic_linux.json
@@ -24,7 +24,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"proj\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"environment\": \"Staging\", \"gclient_variables\": {}, \"generators\": {\"tasks\": [{\"language\": \"python3\", \"name\": \"Debug-FlutterMacOS.framework\", \"parameters\": [\"--variant\", \"host_profile\", \"--type\", \"engine\", \"--engine-capture-core-dump\"], \"script\": \"flutter/sky/tools/create_macos_framework.py\", \"type\": \"local\"}]}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"proj\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"drone_dimensions\": [\"os=Linux\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"environment\": \"Staging\", \"gclient_variables\": {}, \"generators\": {\"tasks\": [{\"language\": \"python3\", \"name\": \"Debug-FlutterMacOS.framework\", \"parameters\": [\"--variant\", \"host_profile\", \"--type\", \"engine\", \"--engine-capture-core-dump\"], \"script\": \"flutter/sky/tools/create_macos_framework.py\", \"type\": \"local\"}]}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -51,6 +51,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -89,6 +95,9 @@
       "@@@STEP_LOG_LINE@request@                \"type\": \"gcs\"@@@",
       "@@@STEP_LOG_LINE@request@              }@@@",
       "@@@STEP_LOG_LINE@request@            ], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"generators\": [@@@",
       "@@@STEP_LOG_LINE@request@              {@@@",
       "@@@STEP_LOG_LINE@request@                \"name\": \"generator1\", @@@",
diff --git a/recipes/engine_v2/engine_v2.expected/basic_mac.json b/recipes/engine_v2/engine_v2.expected/basic_mac.json
index 3042d21..c96b424 100644
--- a/recipes/engine_v2/engine_v2.expected/basic_mac.json
+++ b/recipes/engine_v2/engine_v2.expected/basic_mac.json
@@ -24,7 +24,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"prod\", \"builder\": \"Mac Production Engine Drone\", \"project\": \"flutter\"}, \"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\", \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"archives\": [{\"destination\": \"bucket/c.txt\", \"name\": \"c.txt\", \"source\": \"/a/b/c.txt\"}], \"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"gclient_variables\": {}, \"generators\": {\"tasks\": [{\"language\": \"python3\", \"name\": \"Debug-FlutterMacOS.framework\", \"parameters\": [\"--variant\", \"host_profile\", \"--type\", \"engine\", \"--engine-capture-core-dump\"], \"script\": \"flutter/sky/tools/create_macos_framework.py\", \"type\": \"local\"}]}, \"recipe\": \"engine_v2/builder\", \"tests\": []}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"prod\", \"builder\": \"Linux Production Engine Drone\", \"project\": \"flutter\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"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\", \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"archives\": [{\"destination\": \"bucket/c.txt\", \"name\": \"c.txt\", \"source\": \"/a/b/c.txt\"}], \"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"drone_dimensions\": [\"os=Linux\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"gclient_variables\": {}, \"generators\": {\"tasks\": [{\"language\": \"python3\", \"name\": \"Debug-FlutterMacOS.framework\", \"parameters\": [\"--variant\", \"host_profile\", \"--type\", \"engine\", \"--engine-capture-core-dump\"], \"script\": \"flutter/sky/tools/create_macos_framework.py\", \"type\": \"local\"}]}, \"recipe\": \"engine_v2/builder\", \"tests\": []}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -48,9 +48,15 @@
       "@@@STEP_LOG_LINE@request@      \"scheduleBuild\": {@@@",
       "@@@STEP_LOG_LINE@request@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"bucket\": \"prod\", @@@",
-      "@@@STEP_LOG_LINE@request@          \"builder\": \"Mac Production Engine Drone\", @@@",
+      "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Production Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"flutter\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -88,6 +94,9 @@
       "@@@STEP_LOG_LINE@request@                \"type\": \"gcs\"@@@",
       "@@@STEP_LOG_LINE@request@              }@@@",
       "@@@STEP_LOG_LINE@request@            ], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"generators\": [@@@",
       "@@@STEP_LOG_LINE@request@              {@@@",
       "@@@STEP_LOG_LINE@request@                \"name\": \"generator1\", @@@",
diff --git a/recipes/engine_v2/engine_v2.expected/codesign_release_branch.json b/recipes/engine_v2/engine_v2.expected/codesign_release_branch.json
index c7119d5..abaa895 100644
--- a/recipes/engine_v2/engine_v2.expected/codesign_release_branch.json
+++ b/recipes/engine_v2/engine_v2.expected/codesign_release_branch.json
@@ -242,6 +242,9 @@
       "@@@STEP_LOG_LINE@config_name.json@          \"type\": \"gcs\"@@@",
       "@@@STEP_LOG_LINE@config_name.json@        }@@@",
       "@@@STEP_LOG_LINE@config_name.json@      ],@@@",
+      "@@@STEP_LOG_LINE@config_name.json@      \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@config_name.json@        \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@config_name.json@      ],@@@",
       "@@@STEP_LOG_LINE@config_name.json@      \"generators\": [@@@",
       "@@@STEP_LOG_LINE@config_name.json@        {@@@",
       "@@@STEP_LOG_LINE@config_name.json@          \"name\": \"generator1\",@@@",
@@ -416,7 +419,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Mac Engine Drone\", \"project\": \"proj\"}, \"exe\": {\"cipdVersion\": \"refs/heads/flutter-3.2-candidate.5\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"config_name\": \"config_name\", \"environment\": \"Staging\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"proj\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"exe\": {\"cipdVersion\": \"refs/heads/flutter-3.2-candidate.5\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"drone_dimensions\": [\"os=Linux\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"config_name\": \"config_name\", \"environment\": \"Staging\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -440,9 +443,15 @@
       "@@@STEP_LOG_LINE@request@      \"scheduleBuild\": {@@@",
       "@@@STEP_LOG_LINE@request@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"bucket\": \"try\", @@@",
-      "@@@STEP_LOG_LINE@request@          \"builder\": \"Mac Engine Drone\", @@@",
+      "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/flutter-3.2-candidate.5\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -481,6 +490,9 @@
       "@@@STEP_LOG_LINE@request@                \"type\": \"gcs\"@@@",
       "@@@STEP_LOG_LINE@request@              }@@@",
       "@@@STEP_LOG_LINE@request@            ], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"generators\": [@@@",
       "@@@STEP_LOG_LINE@request@              {@@@",
       "@@@STEP_LOG_LINE@request@                \"name\": \"generator1\", @@@",
diff --git a/recipes/engine_v2/engine_v2.expected/config_from_file.json b/recipes/engine_v2/engine_v2.expected/config_from_file.json
index feef63c..40e663b 100644
--- a/recipes/engine_v2/engine_v2.expected/config_from_file.json
+++ b/recipes/engine_v2/engine_v2.expected/config_from_file.json
@@ -242,6 +242,9 @@
       "@@@STEP_LOG_LINE@config_name.json@          \"type\": \"gcs\"@@@",
       "@@@STEP_LOG_LINE@config_name.json@        }@@@",
       "@@@STEP_LOG_LINE@config_name.json@      ],@@@",
+      "@@@STEP_LOG_LINE@config_name.json@      \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@config_name.json@        \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@config_name.json@      ],@@@",
       "@@@STEP_LOG_LINE@config_name.json@      \"generators\": [@@@",
       "@@@STEP_LOG_LINE@config_name.json@        {@@@",
       "@@@STEP_LOG_LINE@config_name.json@          \"name\": \"generator1\",@@@",
@@ -343,7 +346,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"proj\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"config_name\": \"config_name\", \"environment\": \"Staging\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"proj\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"drone_dimensions\": [\"os=Linux\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"config_name\": \"config_name\", \"environment\": \"Staging\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -370,6 +373,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"proj\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -408,6 +417,9 @@
       "@@@STEP_LOG_LINE@request@                \"type\": \"gcs\"@@@",
       "@@@STEP_LOG_LINE@request@              }@@@",
       "@@@STEP_LOG_LINE@request@            ], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"generators\": [@@@",
       "@@@STEP_LOG_LINE@request@              {@@@",
       "@@@STEP_LOG_LINE@request@                \"name\": \"generator1\", @@@",
diff --git a/recipes/engine_v2/engine_v2.expected/monorepo_config_file.json b/recipes/engine_v2/engine_v2.expected/monorepo_config_file.json
index 7c6577d..76c909e 100644
--- a/recipes/engine_v2/engine_v2.expected/monorepo_config_file.json
+++ b/recipes/engine_v2/engine_v2.expected/monorepo_config_file.json
@@ -235,6 +235,9 @@
       "@@@STEP_LOG_LINE@config_name.json@          \"type\": \"gcs\"@@@",
       "@@@STEP_LOG_LINE@config_name.json@        }@@@",
       "@@@STEP_LOG_LINE@config_name.json@      ],@@@",
+      "@@@STEP_LOG_LINE@config_name.json@      \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@config_name.json@        \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@config_name.json@      ],@@@",
       "@@@STEP_LOG_LINE@config_name.json@      \"generators\": [@@@",
       "@@@STEP_LOG_LINE@config_name.json@        {@@@",
       "@@@STEP_LOG_LINE@config_name.json@          \"name\": \"generator1\",@@@",
@@ -392,7 +395,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci.sandbox\", \"builder\": \"Linux Engine Drone\", \"project\": \"dart\"}, \"exe\": {\"cipdVersion\": \"refs/heads/None\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"monorepo\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"config_name\": \"config_name\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci.sandbox\", \"builder\": \"Linux Engine Drone\", \"project\": \"dart\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"exe\": {\"cipdVersion\": \"refs/heads/None\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"monorepo\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"drone_dimensions\": [\"os=Linux\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"config_name\": \"config_name\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -419,6 +422,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"dart\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/None\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -449,6 +458,9 @@
       "@@@STEP_LOG_LINE@request@                \"type\": \"gcs\"@@@",
       "@@@STEP_LOG_LINE@request@              }@@@",
       "@@@STEP_LOG_LINE@request@            ], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"generators\": [@@@",
       "@@@STEP_LOG_LINE@request@              {@@@",
       "@@@STEP_LOG_LINE@request@                \"name\": \"generator1\", @@@",
diff --git a/recipes/engine_v2/engine_v2.expected/monorepo_config_file_tests.json b/recipes/engine_v2/engine_v2.expected/monorepo_config_file_tests.json
index cd4a708..30d6459 100644
--- a/recipes/engine_v2/engine_v2.expected/monorepo_config_file_tests.json
+++ b/recipes/engine_v2/engine_v2.expected/monorepo_config_file_tests.json
@@ -242,6 +242,9 @@
       "@@@STEP_LOG_LINE@config_name.json@          \"type\": \"gcs\"@@@",
       "@@@STEP_LOG_LINE@config_name.json@        }@@@",
       "@@@STEP_LOG_LINE@config_name.json@      ],@@@",
+      "@@@STEP_LOG_LINE@config_name.json@      \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@config_name.json@        \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@config_name.json@      ],@@@",
       "@@@STEP_LOG_LINE@config_name.json@      \"generators\": [@@@",
       "@@@STEP_LOG_LINE@config_name.json@        {@@@",
       "@@@STEP_LOG_LINE@config_name.json@          \"name\": \"generator1\",@@@",
@@ -429,7 +432,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci.sandbox\", \"builder\": \"Linux Engine Drone\", \"project\": \"dart\"}, \"exe\": {\"cipdVersion\": \"refs/heads/None\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"monorepo\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"config_name\": \"config_name\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci.sandbox\", \"builder\": \"Linux Engine Drone\", \"project\": \"dart\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"exe\": {\"cipdVersion\": \"refs/heads/None\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"monorepo\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"drone_dimensions\": [\"os=Linux\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"config_name\": \"config_name\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -456,6 +459,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"dart\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/None\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -486,6 +495,9 @@
       "@@@STEP_LOG_LINE@request@                \"type\": \"gcs\"@@@",
       "@@@STEP_LOG_LINE@request@              }@@@",
       "@@@STEP_LOG_LINE@request@            ], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"generators\": [@@@",
       "@@@STEP_LOG_LINE@request@              {@@@",
       "@@@STEP_LOG_LINE@request@                \"name\": \"generator1\", @@@",
@@ -1234,7 +1246,7 @@
       }
     },
     "name": "launch tests.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci.sandbox\", \"builder\": \"Linux Engine Drone\", \"project\": \"dart\"}, \"exe\": {\"cipdVersion\": \"refs/heads/main\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"monorepo\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"name\": \"framework_tests libraries\", \"recipe\": \"engine_v2/tester\", \"resolved_deps\": [], \"shard\": \"framework_tests\", \"subshard\": \"libraries\", \"test_dependencies\": [{\"dependency\": \"android_sdk\", \"version\": \"version:33v6\"}]}, \"config_name\": \"config_name\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/tester\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci.sandbox\", \"builder\": \" Engine Drone\", \"project\": \"dart\"}, \"exe\": {\"cipdVersion\": \"refs/heads/main\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"monorepo\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"build\": {\"name\": \"framework_tests libraries\", \"recipe\": \"engine_v2/tester\", \"resolved_deps\": [], \"shard\": \"framework_tests\", \"subshard\": \"libraries\", \"test_dependencies\": [{\"dependency\": \"android_sdk\", \"version\": \"version:33v6\"}]}, \"config_name\": \"config_name\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/tester\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -1258,7 +1270,7 @@
       "@@@STEP_LOG_LINE@request@      \"scheduleBuild\": {@@@",
       "@@@STEP_LOG_LINE@request@        \"builder\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"bucket\": \"ci.sandbox\", @@@",
-      "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
+      "@@@STEP_LOG_LINE@request@          \"builder\": \" Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"dart\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
diff --git a/recipes/engine_v2/engine_v2.expected/monorepo_try.json b/recipes/engine_v2/engine_v2.expected/monorepo_try.json
index 57c168c..6d20d9e 100644
--- a/recipes/engine_v2/engine_v2.expected/monorepo_try.json
+++ b/recipes/engine_v2/engine_v2.expected/monorepo_try.json
@@ -24,7 +24,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci.sandbox\", \"builder\": \"Linux Engine Drone-try\", \"project\": \"dart\"}, \"exe\": {\"cipdVersion\": \"refs/heads/main\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gerritChanges\": [{\"change\": \"9425\", \"host\": \"dart-review.googlesource.com\", \"patchset\": \"3\", \"project\": \"sdk\"}], \"priority\": 30, \"properties\": {\"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"builder_name_suffix\": \"-try\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci.sandbox\", \"builder\": \"Linux Engine Drone-try\", \"project\": \"dart\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"exe\": {\"cipdVersion\": \"refs/heads/main\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gerritChanges\": [{\"change\": \"9425\", \"host\": \"dart-review.googlesource.com\", \"patchset\": \"3\", \"project\": \"sdk\"}], \"priority\": 30, \"properties\": {\"build\": {\"archives\": [{\"base_path\": \"out/host_debug/zip_archives/\", \"include_paths\": [\"out/host_debug/zip_archives/darwin-x64/artifacts.zip\", \"out/host_debug/zip_archives/darwin-x64/FlutterEmbedder.framework.zip\", \"out/host_debug/zip_archives/dart-sdk-darwin-x64.zip\", \"out/host_debug/zip_archives/flutter-web-sdk-darwin-x64.zip\"], \"name\": \"host_debug\", \"type\": \"gcs\"}], \"drone_dimensions\": [\"os=Linux\"], \"generators\": [{\"name\": \"generator1\", \"script\": \"script1.sh\"}], \"gn\": [\"--ios\"], \"name\": \"ios_debug\", \"ninja\": {\"config\": \"ios_debug\", \"targets\": []}, \"recipe\": \"engine_v2/builder\"}, \"builder_name_suffix\": \"-try\", \"gclient_variables\": {}, \"recipe\": \"engine_v2/builder\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"cq_experimental\", \"value\": \"false\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LOG_LINE@json.output@{@@@",
@@ -51,6 +51,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone-try\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"dart\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -83,6 +89,9 @@
       "@@@STEP_LOG_LINE@request@                \"type\": \"gcs\"@@@",
       "@@@STEP_LOG_LINE@request@              }@@@",
       "@@@STEP_LOG_LINE@request@            ], @@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"generators\": [@@@",
       "@@@STEP_LOG_LINE@request@              {@@@",
       "@@@STEP_LOG_LINE@request@                \"name\": \"generator1\", @@@",
diff --git a/recipes/engine_v2/engine_v2.py b/recipes/engine_v2/engine_v2.py
index 7c0bbb5..cc35103 100644
--- a/recipes/engine_v2/engine_v2.py
+++ b/recipes/engine_v2/engine_v2.py
@@ -249,7 +249,8 @@
           ], "name": "host_debug"
       }], "name": "ios_debug", "gn": ["--ios"],
       "ninja": {"config": "ios_debug", "targets": []},
-      "generators": [{"name": "generator1", "script": "script1.sh"}]
+      "generators": [{"name": "generator1", "script": "script1.sh"}],
+      "drone_dimensions": ['os=Linux']
   }]
   generators = {
           "tasks":
diff --git a/recipes/release/release_builder.expected/basic_linux_beta.json b/recipes/release/release_builder.expected/basic_linux_beta.json
index 9daaf77..94c5598 100644
--- a/recipes/release/release_builder.expected/basic_linux_beta.json
+++ b/recipes/release/release_builder.expected/basic_linux_beta.json
@@ -259,6 +259,9 @@
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"targets\": [@@@",
       "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      ], @@@",
       "@@@STEP_LOG_LINE@json.output@      \"name\": \"linux one\", @@@",
       "@@@STEP_LOG_LINE@json.output@      \"properties\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"$flutter/osx_sdk\": \"{\\\"sdk_version\\\": \\\"14a5294e\\\"}\", @@@",
@@ -267,6 +270,9 @@
       "@@@STEP_LOG_LINE@json.output@      \"recipe\": \"engine/something\"@@@",
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
       "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      ], @@@",
       "@@@STEP_LOG_LINE@json.output@      \"enabled_branches\": [@@@",
       "@@@STEP_LOG_LINE@json.output@        \"beta\", @@@",
       "@@@STEP_LOG_LINE@json.output@        \"main\"@@@",
@@ -308,7 +314,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"prod\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/beta\"}, \"priority\": 30, \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": \"14a5294e\"}, \"build\": {\"enabled_branches\": [\"beta\", \"main\"], \"name\": \"linux packaging one\", \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": \"14a5294e\"}}, \"recipe\": \"release/something\", \"scheduler\": \"release\"}, \"environment\": \"Staging\", \"gclient_variables\": {}, \"recipe\": \"release/something\", \"repository\": \"engine\"}, \"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\": \"Linux Engine Drone\", \"project\": \"prod\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/beta\"}, \"priority\": 30, \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": \"14a5294e\"}, \"build\": {\"drone_dimensions\": [\"os=Linux\"], \"enabled_branches\": [\"beta\", \"main\"], \"name\": \"linux packaging one\", \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": \"14a5294e\"}}, \"recipe\": \"release/something\", \"scheduler\": \"release\"}, \"environment\": \"Staging\", \"gclient_variables\": {}, \"recipe\": \"release/something\", \"repository\": \"engine\"}, \"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@{@@@",
@@ -335,6 +341,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"prod\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -363,6 +375,9 @@
       "@@@STEP_LOG_LINE@request@            \"sdk_version\": \"14a5294e\"@@@",
       "@@@STEP_LOG_LINE@request@          }, @@@",
       "@@@STEP_LOG_LINE@request@          \"build\": {@@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"enabled_branches\": [@@@",
       "@@@STEP_LOG_LINE@request@              \"beta\", @@@",
       "@@@STEP_LOG_LINE@request@              \"main\"@@@",
diff --git a/recipes/release/release_builder.expected/basic_linux_main.json b/recipes/release/release_builder.expected/basic_linux_main.json
index 2b96b46..4c3646b 100644
--- a/recipes/release/release_builder.expected/basic_linux_main.json
+++ b/recipes/release/release_builder.expected/basic_linux_main.json
@@ -260,6 +260,9 @@
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"targets\": [@@@",
       "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      ], @@@",
       "@@@STEP_LOG_LINE@json.output@      \"name\": \"linux one\", @@@",
       "@@@STEP_LOG_LINE@json.output@      \"properties\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"$flutter/osx_sdk\": \"{\\\"sdk_version\\\": \\\"14a5294e\\\"}\", @@@",
@@ -268,6 +271,9 @@
       "@@@STEP_LOG_LINE@json.output@      \"recipe\": \"engine/something\"@@@",
       "@@@STEP_LOG_LINE@json.output@    }, @@@",
       "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      ], @@@",
       "@@@STEP_LOG_LINE@json.output@      \"enabled_branches\": [@@@",
       "@@@STEP_LOG_LINE@json.output@        \"beta\", @@@",
       "@@@STEP_LOG_LINE@json.output@        \"main\"@@@",
@@ -309,7 +315,7 @@
       }
     },
     "name": "launch builds.schedule",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"try\", \"builder\": \"Linux Engine Drone\", \"project\": \"prod\"}, \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": \"14a5294e\"}, \"build\": {\"name\": \"linux one\", \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": \"14a5294e\"}, \"release_build\": true}, \"recipe\": \"engine/something\"}, \"environment\": \"Staging\", \"gclient_variables\": {}, \"recipe\": \"engine/something\", \"release_build\": true, \"repository\": \"engine\"}, \"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\": \"Linux Engine Drone\", \"project\": \"prod\"}, \"dimensions\": [{\"key\": \"os\", \"value\": \"Linux\"}], \"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\": \"flutter-review.googlesource.com\", \"patchset\": \"7\", \"project\": \"mirrors/engine\"}], \"gitilesCommit\": {\"host\": \"flutter.googlesource.com\", \"id\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"project\": \"mirrors/engine\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": \"14a5294e\"}, \"build\": {\"drone_dimensions\": [\"os=Linux\"], \"name\": \"linux one\", \"properties\": {\"$flutter/osx_sdk\": {\"sdk_version\": \"14a5294e\"}, \"release_build\": true}, \"recipe\": \"engine/something\"}, \"environment\": \"Staging\", \"gclient_variables\": {}, \"recipe\": \"engine/something\", \"release_build\": true, \"repository\": \"engine\"}, \"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@{@@@",
@@ -336,6 +342,12 @@
       "@@@STEP_LOG_LINE@request@          \"builder\": \"Linux Engine Drone\", @@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"prod\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
+      "@@@STEP_LOG_LINE@request@        \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@          {@@@",
+      "@@@STEP_LOG_LINE@request@            \"key\": \"os\", @@@",
+      "@@@STEP_LOG_LINE@request@            \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@          }@@@",
+      "@@@STEP_LOG_LINE@request@        ], @@@",
       "@@@STEP_LOG_LINE@request@        \"exe\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"cipdVersion\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        }, @@@",
@@ -364,6 +376,9 @@
       "@@@STEP_LOG_LINE@request@            \"sdk_version\": \"14a5294e\"@@@",
       "@@@STEP_LOG_LINE@request@          }, @@@",
       "@@@STEP_LOG_LINE@request@          \"build\": {@@@",
+      "@@@STEP_LOG_LINE@request@            \"drone_dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@request@              \"os=Linux\"@@@",
+      "@@@STEP_LOG_LINE@request@            ], @@@",
       "@@@STEP_LOG_LINE@request@            \"name\": \"linux one\", @@@",
       "@@@STEP_LOG_LINE@request@            \"properties\": {@@@",
       "@@@STEP_LOG_LINE@request@              \"$flutter/osx_sdk\": {@@@",
diff --git a/recipes/release/release_builder.py b/recipes/release/release_builder.py
index 2c4e31b..5cfbcc1 100644
--- a/recipes/release/release_builder.py
+++ b/recipes/release/release_builder.py
@@ -97,25 +97,19 @@
     output_props={"test_orchestration_inputs_hash": "abc"},
     status="SUCCESS",
   )
-  tasks_dict = {'targets': [
-      {
-          'name': 'linux one',
-          'recipe': 'engine/something',
-          'properties': {
+  tasks_dict = {
+      'targets': [{
+          'name': 'linux one', 'recipe': 'engine/something', 'properties': {
               'release_build': True,
               '$flutter/osx_sdk': '{"sdk_version": "14a5294e"}'
-          },
-      },
-      {
-          'name': 'linux packaging one',
-          'recipe': 'release/something',
+          }, 'drone_dimensions': ['os=Linux']
+      }, {
+          'name': 'linux packaging one', 'recipe': 'release/something',
           'scheduler': 'release',
-          'properties': {
-              '$flutter/osx_sdk': '{"sdk_version": "14a5294e"}'
-          },
-          'enabled_branches': ['beta', 'main']
-      }
-    ]
+          'properties': {'$flutter/osx_sdk': '{"sdk_version": "14a5294e"}'},
+          'enabled_branches': ['beta',
+                               'main'], 'drone_dimensions': ['os=Linux']
+      }]
   }
   for git_ref in ['main', 'beta']:
     yield api.test(