diff --git a/infra/config/global/generated/luci-milo.cfg b/infra/config/global/generated/luci-milo.cfg
index 63bfa53..c0be650 100644
--- a/infra/config/global/generated/luci-milo.cfg
+++ b/infra/config/global/generated/luci-milo.cfg
@@ -11,46 +11,6 @@
   refs: "regexp:refs/heads/.*"
   manifest_name: "REVISION"
   builders {
-    name: "buildbucket/luci.r8.ci/linux-d8_jctf"
-    category: "R8"
-    short_name: "d8_jctf"
-  }
-  builders {
-    name: "buildbucket/luci.r8.ci/linux-r8cf_jctf"
-    category: "R8"
-    short_name: "r8cf_jctf"
-  }
-  builders {
-    name: "buildbucket/luci.r8.ci/linux-d8_jctf_release"
-    category: "R8 release"
-    short_name: "d8_jctf_release"
-  }
-  builders {
-    name: "buildbucket/luci.r8.ci/linux-r8cf_jctf_release"
-    category: "R8 release"
-    short_name: "r8cf_jctf_release"
-  }
-  builders {
-    name: "buildbucket/luci.r8.ci/linux-run-on-app-dump"
-    category: "R8"
-    short_name: "dump"
-  }
-  builders {
-    name: "buildbucket/luci.r8.ci/linux-run-on-app-dump_release"
-    category: "R8 release"
-    short_name: "dump_release"
-  }
-  builders {
-    name: "buildbucket/luci.r8.ci/desugared_library_head"
-    category: "R8"
-    short_name: "desugared_library_head"
-  }
-  builders {
-    name: "buildbucket/luci.r8.ci/desugared_library_jdk11_head"
-    category: "R8"
-    short_name: "desugared_library_jdk11_head"
-  }
-  builders {
     name: "buildbucket/luci.r8.ci/archive"
     category: "R8"
     short_name: "archive"
@@ -66,16 +26,6 @@
     short_name: "archive_lib_desugar"
   }
   builders {
-    name: "buildbucket/luci.r8.ci/linux-internal"
-    category: "R8"
-    short_name: "internal"
-  }
-  builders {
-    name: "buildbucket/luci.r8.ci/linux-internal_release"
-    category: "R8 release"
-    short_name: "internal_release"
-  }
-  builders {
     name: "buildbucket/luci.r8.ci/linux-dex_default"
     category: "R8"
     short_name: "dex_default"
@@ -226,8 +176,58 @@
     short_name: "windows_release"
   }
   builders {
+    name: "buildbucket/luci.r8.ci/linux-internal"
+    category: "R8"
+    short_name: "internal"
+  }
+  builders {
+    name: "buildbucket/luci.r8.ci/linux-internal_release"
+    category: "R8 release"
+    short_name: "internal_release"
+  }
+  builders {
+    name: "buildbucket/luci.r8.ci/linux-run-on-app-dump"
+    category: "R8"
+    short_name: "dump"
+  }
+  builders {
+    name: "buildbucket/luci.r8.ci/linux-run-on-app-dump_release"
+    category: "R8 release"
+    short_name: "dump_release"
+  }
+  builders {
+    name: "buildbucket/luci.r8.ci/desugared_library_head"
+    category: "R8"
+    short_name: "desugared_library_head"
+  }
+  builders {
+    name: "buildbucket/luci.r8.ci/desugared_library_jdk11_head"
+    category: "R8"
+    short_name: "desugared_library_jdk11_head"
+  }
+  builders {
     name: "buildbucket/luci.r8.ci/linux-kotlin-dev"
     category: "R8"
     short_name: "dev"
   }
+  builders {
+    name: "buildbucket/luci.r8.ci/linux-d8_jctf"
+    category: "R8"
+    short_name: "d8_jctf"
+  }
+  builders {
+    name: "buildbucket/luci.r8.ci/linux-r8cf_jctf"
+    category: "R8"
+    short_name: "r8cf_jctf"
+  }
+  builders {
+    name: "buildbucket/luci.r8.ci/linux-d8_jctf_release"
+    category: "R8 release"
+    short_name: "d8_jctf_release"
+  }
+  builders {
+    name: "buildbucket/luci.r8.ci/linux-r8cf_jctf_release"
+    category: "R8 release"
+    short_name: "r8cf_jctf_release"
+  }
 }
diff --git a/infra/config/global/main.star b/infra/config/global/main.star
index 6274213..26de11d 100755
--- a/infra/config/global/main.star
+++ b/infra/config/global/main.star
@@ -207,25 +207,78 @@
 def r8_tester_with_default(name, test_options, dimensions=None):
   r8_tester(name, test_options + common_test_options, dimensions)
 
-def jctf():
-  for release in ["", "_release"]:
-    for tool in ["d8", "r8cf"]:
-      properties = {
-          "tool": tool,
-          "builder_group" : "internal.client.r8",
-          "dex_vm" : "all",
-          "only_jctf" : "true",
-      }
-      name = "linux-" + tool + "_jctf"
-      name = name + release
-      r8_builder(
-          name,
-          dimensions = get_dimensions(jctf=True),
-          execution_timeout = time.hour * 12,
-          expiration_timeout = time.hour * 35,
-          properties = properties,
-      )
-jctf()
+def archivers():
+  for name in ["archive", "archive_release", "archive_lib_desugar"]:
+    desugar = "desugar" in name
+    properties = {
+        "archive": "true",
+        "builder_group" : "internal.client.r8"
+    }
+    if desugar:
+      properties["sdk_desugar"] = "true"
+    r8_builder(
+        name,
+        dimensions = get_dimensions(),
+        triggering_policy = scheduler.policy(
+            kind = scheduler.GREEDY_BATCHING_KIND,
+            max_batch_size = 1,
+            max_concurrent_invocations = 3
+        ),
+        priority = 25,
+        trigger = not desugar,
+        properties = properties,
+        execution_timeout = time.hour * 1 if desugar else time.minute * 30 ,
+        expiration_timeout = time.hour * 35,
+    )
+archivers()
+
+r8_tester_with_default("linux-dex_default", ["--runtimes=dex-default"])
+r8_tester_with_default("linux-none", ["--runtimes=none"])
+r8_tester_with_default("linux-jdk8", ["--runtimes=jdk8"])
+r8_tester_with_default("linux-jdk9", ["--runtimes=jdk9"])
+r8_tester_with_default("linux-jdk11", ["--runtimes=jdk11"])
+
+r8_tester_with_default("linux-android-4.0.4",
+    ["--dex_vm=4.0.4", "--all_tests"])
+r8_tester_with_default("linux-android-4.4.4",
+    ["--dex_vm=4.4.4", "--all_tests"])
+r8_tester_with_default("linux-android-5.1.1",
+    ["--dex_vm=5.1.1", "--all_tests"])
+r8_tester_with_default("linux-android-6.0.1",
+    ["--dex_vm=6.0.1", "--all_tests"])
+r8_tester_with_default("linux-android-7.0.0",
+    ["--dex_vm=7.0.0", "--all_tests"])
+r8_tester_with_default("linux-android-8.1.0",
+    ["--dex_vm=8.1.0", "--all_tests"])
+r8_tester_with_default("linux-android-9.0.0",
+    ["--dex_vm=9.0.0", "--all_tests"])
+r8_tester_with_default("linux-android-10.0.0",
+    ["--dex_vm=10.0.0", "--all_tests"])
+r8_tester_with_default("linux-android-12.0.0",
+    ["--dex_vm=12.0.0", "--all_tests"])
+
+r8_tester_with_default("windows", ["--all_tests"],
+    dimensions=get_dimensions(windows=True))
+
+def internal():
+  for name in ["linux-internal", "linux-internal_release"]:
+    r8_builder(
+        name,
+        dimensions = get_dimensions(internal=True),
+        triggering_policy = scheduler.policy(
+            kind = scheduler.GREEDY_BATCHING_KIND,
+            max_batch_size = 1,
+            max_concurrent_invocations = 1
+        ),
+        priority = 25,
+        properties = {
+            "internal": "true",
+            "builder_group" : "internal.client.r8"
+        },
+        execution_timeout = time.hour * 12,
+        expiration_timeout = time.hour * 35,
+    )
+internal()
 
 def app_dump():
   for release in ["", "_release"]:
@@ -263,79 +316,6 @@
     )
 desugared_library()
 
-def archivers():
-  for name in ["archive", "archive_release", "archive_lib_desugar"]:
-    desugar = "desugar" in name
-    properties = {
-        "archive": "true",
-        "builder_group" : "internal.client.r8"
-    }
-    if desugar:
-      properties["sdk_desugar"] = "true"
-    r8_builder(
-        name,
-        dimensions = get_dimensions(),
-        triggering_policy = scheduler.policy(
-            kind = scheduler.GREEDY_BATCHING_KIND,
-            max_batch_size = 1,
-            max_concurrent_invocations = 3
-        ),
-        priority = 25,
-        trigger = not desugar,
-        properties = properties,
-        execution_timeout = time.hour * 1 if desugar else time.minute * 30 ,
-        expiration_timeout = time.hour * 35,
-    )
-archivers()
-
-def internal():
-  for name in ["linux-internal", "linux-internal_release"]:
-    r8_builder(
-        name,
-        dimensions = get_dimensions(internal=True),
-        triggering_policy = scheduler.policy(
-            kind = scheduler.GREEDY_BATCHING_KIND,
-            max_batch_size = 1,
-            max_concurrent_invocations = 1
-        ),
-        priority = 25,
-        properties = {
-            "internal": "true",
-            "builder_group" : "internal.client.r8"
-        },
-        execution_timeout = time.hour * 12,
-        expiration_timeout = time.hour * 35,
-    )
-internal()
-
-r8_tester_with_default("linux-dex_default", ["--runtimes=dex-default"])
-r8_tester_with_default("linux-none", ["--runtimes=none"])
-r8_tester_with_default("linux-jdk8", ["--runtimes=jdk8"])
-r8_tester_with_default("linux-jdk9", ["--runtimes=jdk9"])
-r8_tester_with_default("linux-jdk11", ["--runtimes=jdk11"])
-
-r8_tester_with_default("linux-android-4.0.4",
-    ["--dex_vm=4.0.4", "--all_tests"])
-r8_tester_with_default("linux-android-4.4.4",
-    ["--dex_vm=4.4.4", "--all_tests"])
-r8_tester_with_default("linux-android-5.1.1",
-    ["--dex_vm=5.1.1", "--all_tests"])
-r8_tester_with_default("linux-android-6.0.1",
-    ["--dex_vm=6.0.1", "--all_tests"])
-r8_tester_with_default("linux-android-7.0.0",
-    ["--dex_vm=7.0.0", "--all_tests"])
-r8_tester_with_default("linux-android-8.1.0",
-    ["--dex_vm=8.1.0", "--all_tests"])
-r8_tester_with_default("linux-android-9.0.0",
-    ["--dex_vm=9.0.0", "--all_tests"])
-r8_tester_with_default("linux-android-10.0.0",
-    ["--dex_vm=10.0.0", "--all_tests"])
-r8_tester_with_default("linux-android-12.0.0",
-    ["--dex_vm=12.0.0", "--all_tests"])
-
-r8_tester_with_default("windows", ["--all_tests"],
-    dimensions=get_dimensions(windows=True))
-
 r8_builder(
     "linux-kotlin-dev",
     dimensions = get_dimensions(),
@@ -346,3 +326,24 @@
       "test_options" : ["--runtimes=dex-default:jdk11", "--kotlin-compiler-dev", "--one_line_per_test", "--archive_failures", "--no-internal", "*kotlin*"]
     }
 )
+
+def jctf():
+  for release in ["", "_release"]:
+    for tool in ["d8", "r8cf"]:
+      properties = {
+          "tool": tool,
+          "builder_group" : "internal.client.r8",
+          "dex_vm" : "all",
+          "only_jctf" : "true",
+      }
+      name = "linux-" + tool + "_jctf"
+      name = name + release
+      r8_builder(
+          name,
+          dimensions = get_dimensions(jctf=True),
+          execution_timeout = time.hour * 12,
+          expiration_timeout = time.hour * 35,
+          properties = properties,
+      )
+jctf()
+
