Allow overrinding platform dimensions.

Currently only top level dimensions are considered. If a builder
configuration overrides the platform config it is ignored. This CL
overrides the platform dimensions that are also provided at the builder
level.

Bug: https://github.com/flutter/flutter/issues/98529
Change-Id: I023c8bb70d6ed9bf048033eb1f622f08d2984a5e
Reviewed-on: https://flutter-review.googlesource.com/c/infra/+/28020
Reviewed-by: Casey Hillers <chillers@google.com>
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
diff --git a/config/generated/flutter/luci/cr-buildbucket.cfg b/config/generated/flutter/luci/cr-buildbucket.cfg
index cb73b15..8e7c922 100644
--- a/config/generated/flutter/luci/cr-buildbucket.cfg
+++ b/config/generated/flutter/luci/cr-buildbucket.cfg
@@ -8244,7 +8244,7 @@
     builders {
       name: "Linux clang-tidy"
       swarming_host: "chromium-swarm.appspot.com"
-      dimensions: "cores:8"
+      dimensions: "cores:32"
       dimensions: "device_type:none"
       dimensions: "os:Linux"
       dimensions: "pool:luci.flutter.prod"
@@ -118670,7 +118670,7 @@
     builders {
       name: "Linux clang-tidy"
       swarming_host: "chromium-swarm.appspot.com"
-      dimensions: "cores:8"
+      dimensions: "cores:32"
       dimensions: "device_type:none"
       dimensions: "os:Linux"
       dimensions: "pool:luci.flutter.try"
diff --git a/config/lib/ci_yaml/ci_yaml.star b/config/lib/ci_yaml/ci_yaml.star
index e181189..ab68136 100644
--- a/config/lib/ci_yaml/ci_yaml.star
+++ b/config/lib/ci_yaml/ci_yaml.star
@@ -325,13 +325,14 @@
             "repo": repos.GIT_REMOTE[repo],
             "properties": merged_properties,
         }
+
+        # Set dimensions dimensions from properties.
         if platform in dimensions:
             target_args["dimensions"] = dimensions[platform]
         dimension_key_list = ("device_type", "device_os", "mac_model", "cores")
-        platform_properties = _platform_properties(ci_yaml)[platform]
         for dimension_key in dimension_key_list:
-            if dimension_key in platform_properties:
-                target_args["dimensions"][dimension_key] = platform_properties[dimension_key]
+            if dimension_key in merged_properties:
+                target_args["dimensions"][dimension_key] = str(merged_properties[dimension_key])
 
         # Try builds are generated for every target to enable led and presubmit runs
         if _is_default_branch(branch):