Add packaging for Mac arm64.

This is to start bundling the arm64 packages:

Bug: https://github.com/flutter/flutter/issues/97658
Change-Id: I46071b55158c278fe81228ca03ee709438a048b2
Reviewed-on: https://flutter-review.googlesource.com/c/infra/+/27460
Reviewed-by: Zach Anderson <zra@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 a62cc21..ff8b9a5 100644
--- a/config/generated/flutter/luci/cr-buildbucket.cfg
+++ b/config/generated/flutter/luci/cr-buildbucket.cfg
@@ -574,7 +574,6 @@
         '  "goma_jobs": "200",'
         '  "mastername": "client.flutter",'
         '  "recipe": "flutter",'
-        '  "shard": "framework_tests",'
         '  "upload_packages": true'
         '}'
       priority: 25
@@ -616,7 +615,6 @@
         '  "goma_jobs": "200",'
         '  "mastername": "client.flutter",'
         '  "recipe": "flutter",'
-        '  "shard": "framework_tests",'
         '  "upload_packages": true'
         '}'
       priority: 25
@@ -658,7 +656,6 @@
         '  "goma_jobs": "200",'
         '  "mastername": "client.flutter",'
         '  "recipe": "flutter",'
-        '  "shard": "framework_tests",'
         '  "upload_packages": true'
         '}'
       priority: 25
@@ -52980,6 +52977,90 @@
       }
     }
     builders {
+      name: "Mac Arm64 Flutter Beta Packaging"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:arm"
+      dimensions: "os:Mac-11.6"
+      dimensions: "pool:luci.flutter.prod"
+      exe {
+        cipd_package: "flutter/recipe_bundles/flutter.googlesource.com/recipes"
+        cipd_version: "refs/heads/main"
+        cmd: "luciexe"
+      }
+      properties:
+        '{'
+        '  "$fuchsia/goma": {'
+        '    "server": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog"'
+        '  },'
+        '  "$kitchen": {'
+        '    "emulate_gce": true'
+        '  },'
+        '  "$recipe_engine/isolated": {'
+        '    "server": "https://isolateserver.appspot.com"'
+        '  },'
+        '  "$recipe_engine/swarming": {'
+        '    "server": "https://chromium-swarm.appspot.com"'
+        '  },'
+        '  "clobber": false,'
+        '  "gold_tryjob": false,'
+        '  "goma_jobs": "200",'
+        '  "mastername": "client.flutter",'
+        '  "recipe": "flutter",'
+        '  "upload_packages": true'
+        '}'
+      priority: 25
+      execution_timeout_secs: 3600
+      build_numbers: YES
+      service_account: "flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com"
+      task_template_canary_percentage {}
+      experiments {
+        key: "luci.recipes.use_python3"
+        value: 100
+      }
+    }
+    builders {
+      name: "Mac Arm64 Flutter Dev Packaging"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:arm"
+      dimensions: "os:Mac-11.6"
+      dimensions: "pool:luci.flutter.prod"
+      exe {
+        cipd_package: "flutter/recipe_bundles/flutter.googlesource.com/recipes"
+        cipd_version: "refs/heads/main"
+        cmd: "luciexe"
+      }
+      properties:
+        '{'
+        '  "$fuchsia/goma": {'
+        '    "server": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog"'
+        '  },'
+        '  "$kitchen": {'
+        '    "emulate_gce": true'
+        '  },'
+        '  "$recipe_engine/isolated": {'
+        '    "server": "https://isolateserver.appspot.com"'
+        '  },'
+        '  "$recipe_engine/swarming": {'
+        '    "server": "https://chromium-swarm.appspot.com"'
+        '  },'
+        '  "clobber": false,'
+        '  "gold_tryjob": false,'
+        '  "goma_jobs": "200",'
+        '  "mastername": "client.flutter",'
+        '  "recipe": "flutter",'
+        '  "upload_packages": true'
+        '}'
+      priority: 25
+      execution_timeout_secs: 3600
+      build_numbers: YES
+      service_account: "flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com"
+      task_template_canary_percentage {}
+      experiments {
+        key: "luci.recipes.use_python3"
+        value: 100
+      }
+    }
+    builders {
       name: "Mac Engine Drone"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "device_type:none"
@@ -53066,7 +53147,6 @@
         '  "goma_jobs": "200",'
         '  "mastername": "client.flutter",'
         '  "recipe": "flutter",'
-        '  "shard": "framework_tests",'
         '  "upload_packages": true'
         '}'
       priority: 25
@@ -53108,7 +53188,6 @@
         '  "goma_jobs": "200",'
         '  "mastername": "client.flutter",'
         '  "recipe": "flutter",'
-        '  "shard": "framework_tests",'
         '  "upload_packages": true'
         '}'
       priority: 25
@@ -53150,7 +53229,6 @@
         '  "goma_jobs": "200",'
         '  "mastername": "client.flutter",'
         '  "recipe": "flutter",'
-        '  "shard": "framework_tests",'
         '  "upload_packages": true'
         '}'
       priority: 25
@@ -89478,7 +89556,6 @@
         '  "goma_jobs": "200",'
         '  "mastername": "client.flutter",'
         '  "recipe": "flutter",'
-        '  "shard": "framework_tests",'
         '  "upload_packages": true'
         '}'
       priority: 25
@@ -89520,7 +89597,6 @@
         '  "goma_jobs": "200",'
         '  "mastername": "client.flutter",'
         '  "recipe": "flutter",'
-        '  "shard": "framework_tests",'
         '  "upload_packages": true'
         '}'
       priority: 25
@@ -89562,7 +89638,6 @@
         '  "goma_jobs": "200",'
         '  "mastername": "client.flutter",'
         '  "recipe": "flutter",'
-        '  "shard": "framework_tests",'
         '  "upload_packages": true'
         '}'
       priority: 25
diff --git a/config/generated/flutter/luci/luci-milo.cfg b/config/generated/flutter/luci/luci-milo.cfg
index 93bb0d0..876173b 100644
--- a/config/generated/flutter/luci/luci-milo.cfg
+++ b/config/generated/flutter/luci/luci-milo.cfg
@@ -7105,6 +7105,11 @@
     short_name: "beta"
   }
   builders {
+    name: "buildbucket/luci.flutter.prod/Mac Arm64 Flutter Beta Packaging"
+    category: "Mac"
+    short_name: "beta"
+  }
+  builders {
     name: "buildbucket/luci.flutter.prod/Windows Flutter Beta Packaging"
     category: "Windows"
     short_name: "beta"
@@ -7128,6 +7133,11 @@
     short_name: "dev"
   }
   builders {
+    name: "buildbucket/luci.flutter.prod/Mac Arm64 Flutter Dev Packaging"
+    category: "Mac"
+    short_name: "dev"
+  }
+  builders {
     name: "buildbucket/luci.flutter.prod/Windows Flutter Dev Packaging"
     category: "Windows"
     short_name: "dev"
diff --git a/config/generated/flutter/luci/luci-scheduler.cfg b/config/generated/flutter/luci/luci-scheduler.cfg
index d165a5e..73a3167 100644
--- a/config/generated/flutter/luci/luci-scheduler.cfg
+++ b/config/generated/flutter/luci/luci-scheduler.cfg
@@ -8801,6 +8801,34 @@
   }
 }
 job {
+  id: "Mac Arm64 Flutter Beta Packaging"
+  realm: "prod"
+  acl_sets: "prod"
+  triggering_policy {
+    kind: GREEDY_BATCHING
+    max_concurrent_invocations: 3
+  }
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "prod"
+    builder: "Mac Arm64 Flutter Beta Packaging"
+  }
+}
+job {
+  id: "Mac Arm64 Flutter Dev Packaging"
+  realm: "prod"
+  acl_sets: "prod"
+  triggering_policy {
+    kind: GREEDY_BATCHING
+    max_concurrent_invocations: 3
+  }
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "prod"
+    builder: "Mac Arm64 Flutter Dev Packaging"
+  }
+}
+job {
   id: "Mac Flutter Beta Packaging"
   realm: "prod"
   acl_sets: "prod"
@@ -17987,6 +18015,7 @@
   realm: "prod"
   acl_sets: "prod"
   triggers: "Linux Flutter Beta Packaging"
+  triggers: "Mac Arm64 Flutter Beta Packaging"
   triggers: "Mac Flutter Beta Packaging"
   triggers: "Windows Flutter Beta Packaging"
   gitiles {
@@ -18268,6 +18297,7 @@
   realm: "prod"
   acl_sets: "prod"
   triggers: "Linux Flutter Dev Packaging"
+  triggers: "Mac Arm64 Flutter Dev Packaging"
   triggers: "Mac Flutter Dev Packaging"
   triggers: "Windows Flutter Dev Packaging"
   gitiles {
diff --git a/config/packaging_config.star b/config/packaging_config.star
index 1e39d7f..b658428 100644
--- a/config/packaging_config.star
+++ b/config/packaging_config.star
@@ -17,6 +17,7 @@
 LINUX_OS = "Linux"
 WINDOWS_OS = "Windows"
 MAC_OS = "Mac-10.15"
+MAC_ARM64_OS = "Mac-11.6"
 
 # Linux caches
 LINUX_DEFAULT_CACHES = [
@@ -35,21 +36,16 @@
 def _setup(branches):
     platform_args = {
         "linux": {
-            "properties": {
-                "shard": "framework_tests",
-            },
             "os": LINUX_OS,
         },
         "mac": {
-            "properties": {
-                "shard": "framework_tests",
-            },
             "os": MAC_OS,
         },
+        "mac_arm64": {
+            "os": MAC_ARM64_OS,
+            "dimensions": {"cpu": "arm"},
+        },
         "windows": {
-            "properties": {
-                "shard": "framework_tests",
-            },
             "os": WINDOWS_OS,
         },
     }
@@ -188,6 +184,19 @@
             priority = 25,
             **platform_args["mac"]
         )
+
+        # Enable this builder for dev and beta only. The arm64 packages do not exist
+        # yet on stable.
+        if branch in ("dev", "beta"):
+            common.mac_prod_builder(
+                name = builder_name("Mac Arm64 Flutter %s Packaging|%s", branch),
+                recipe = common.full_recipe_name("flutter", recipes_ref),
+                console_view_name = console_view_name,
+                triggered_by = [trigger_name],
+                triggering_policy = triggering_policy,
+                priority = 25,
+                **platform_args["mac_arm64"]
+            )
         common.windows_prod_builder(
             name = builder_name("Windows Flutter %s Packaging|%s", branch),
             recipe = common.full_recipe_name("flutter", recipes_ref),