Sort more like the old console sorting

Bug: 193100371
Change-Id: I1a194f5a3f000660d1dfb6de112cb8fc374498af
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()
+