chromeos_config: Set up R86 for LTS Builder

The LTS branch will begin at R86, thus splitting out the LTS branch to
its own builder for better resource management and tracking.

BUG=b:170391871
TEST='run_tests'

Change-Id: I5391e25203fafb1d5fab7905d17dfd883147ca7d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2567366
Reviewed-by: Dhanya Ganesh <dhanyaganesh@chromium.org>
Commit-Queue: Mike Nichols <mikenichols@chromium.org>
Tested-by: Mike Nichols <mikenichols@chromium.org>
diff --git a/config/chromeos_config.py b/config/chromeos_config.py
index 2d24784..ac19485 100644
--- a/config/chromeos_config.py
+++ b/config/chromeos_config.py
@@ -3056,19 +3056,24 @@
   # or the change will fail chromite unittests.
   branch_builds = [
       # Add non release branch schedules here, if needed.
-      # <branch>, <build_config>, <display_label>, <schedule>, <triggers>
+      # <branch>, <build_config>, <display_label>, <schedule>, <triggers>,
+      # <builder>
 
       # NOTE: R69, R73, R77 and R81 are Long Term Support (LTS) milestones for
       # lakitu and they'd like to keep them a little longer. Please let
       # lakitu-dev@google.com know before deleting this.
       ('release-R69-10895.B', 'master-lakitu-release',
-       config_lib.DISPLAY_LABEL_RELEASE, '0 4 * * *', None),
+       config_lib.DISPLAY_LABEL_RELEASE, '0 4 * * *', None,
+       config_lib.LUCI_BUILDER_LEGACY_RELEASE),
       ('release-R73-11647.B', 'master-lakitu-release',
-       config_lib.DISPLAY_LABEL_RELEASE, '0 8 * * *', None),
+       config_lib.DISPLAY_LABEL_RELEASE, '0 8 * * *', None,
+       config_lib.LUCI_BUILDER_LEGACY_RELEASE),
       ('release-R77-12371.B', 'master-lakitu-release',
-       config_lib.DISPLAY_LABEL_RELEASE, '0 12 * * *', None),
+       config_lib.DISPLAY_LABEL_RELEASE, '0 12 * * *', None,
+       config_lib.LUCI_BUILDER_LEGACY_RELEASE),
       ('release-R81-12871.B', 'master-lakitu-release',
-       config_lib.DISPLAY_LABEL_RELEASE, '0 16 * * *', None),
+       config_lib.DISPLAY_LABEL_RELEASE, '0 16 * * *', None,
+       config_lib.LUCI_BUILDER_LEGACY_RELEASE),
   ]
 
   # The three active release branches.
@@ -3082,7 +3087,8 @@
        ['grunt-android-pi-pre-flight-branch'],
        '',
        [],
-       []),
+       [],
+       config_lib.LUCI_BUILDER_LEGACY_RELEASE),
 
       ('release-R87-13505.B',
        ['grunt-android-pi-pre-flight-branch'],
@@ -3092,7 +3098,8 @@
        ['benchmark-afdo-generate',
         'chrome-silvermont-release-afdo-verify',
         'chrome-airmont-release-afdo-verify',
-        'chrome-broadwell-release-afdo-verify']),
+        'chrome-broadwell-release-afdo-verify'],
+       config_lib.LUCI_BUILDER_LEGACY_RELEASE),
 
       # LTS branch, please do not delete. Contact: cros-lts-team@google.com.
       ('release-R86-13421.B',
@@ -3103,7 +3110,8 @@
        ['benchmark-afdo-generate',
         'chrome-silvermont-release-afdo-verify',
         'chrome-airmont-release-afdo-verify',
-        'chrome-broadwell-release-afdo-verify']),
+        'chrome-broadwell-release-afdo-verify'],
+       config_lib.LUCI_BUILDER_LTS_RELEASE ),
   ]
 
   PFQ_SCHEDULE = [
@@ -3128,7 +3136,7 @@
   ]
 
   assert len(RELEASES) == len(PFQ_SCHEDULE)
-  for ((branch, android_pfq, chrome_pfq, orderfile, afdo),
+  for ((branch, android_pfq, chrome_pfq, orderfile, afdo, builder),
        android_schedule) in zip(
            RELEASES, PFQ_SCHEDULE):
     release_num = re.search(r'release-R(\d+)-.*', branch).group(1)
@@ -3140,10 +3148,10 @@
             'overlays/chromiumos-overlay'),
            [r'regexp:refs/heads/%s\\..*' % branch],
            [('chromeos-base/chromeos-chrome/chromeos-chrome-%s.*.ebuild'
-             % release_num)]]]])
+             % release_num)]]], builder])
     branch_builds.extend([[branch, pfq,
                            config_lib.DISPLAY_LABEL_RELEASE,
-                           android_schedule, None]
+                           android_schedule, None, builder]
                           for pfq in android_pfq])
 
     if chrome_pfq:
@@ -3154,30 +3162,30 @@
       branch_builds.append(
           [branch, chrome_pfq, config_lib.DISPLAY_LABEL_RELEASE, 'triggered',
            [['https://chromium.googlesource.com/chromium/src',
-             [r'regexp:refs/tags/%s\\..*' % release_num]]]])
+             [r'regexp:refs/tags/%s\\..*' % release_num]]], builder])
     if orderfile:
       assert len(orderfile) == len(ORDERFILE_SCHEDULES)
       for b, s in zip(orderfile, ORDERFILE_SCHEDULES):
         branch_builds.append([branch, b,
                               config_lib.DISPLAY_LABEL_RELEASE,
-                              s, None])
+                              s, None, builder])
 
     if afdo:
       assert len(afdo) == len(AFDO_SCHEDULES)
       for b, s in zip(afdo, AFDO_SCHEDULES):
         branch_builds.append([branch, b,
                               config_lib.DISPLAY_LABEL_RELEASE,
-                              s, None])
+                              s, None, builder])
 
   # Convert all branch builds into scheduler config entries.
   default_config = config_lib.GetConfig().GetDefault()
 
   result = []
-  for branch, config_name, label, schedule, trigger in branch_builds:
+  for branch, config_name, label, schedule, trigger, builder in branch_builds:
     result.append(default_config.derive(
         name=config_name,
         display_label=label,
-        luci_builder=config_lib.LUCI_BUILDER_LEGACY_RELEASE,
+        luci_builder=builder,
         schedule_branch=branch,
         schedule=schedule,
         triggered_gitiles=trigger,
diff --git a/config/luci-scheduler.cfg b/config/luci-scheduler.cfg
index 713a6ec..dcebc5c 100644
--- a/config/luci-scheduler.cfg
+++ b/config/luci-scheduler.cfg
@@ -2891,7 +2891,7 @@
   buildbucket: {
     server: "cr-buildbucket.appspot.com"
     bucket: "luci.chromeos.general"
-    builder: "LegacyRelease"
+    builder: "LTSRelease"
     tags: "cbb_branch:release-R86-13421.B"
     tags: "cbb_config:master-release"
     tags: "cbb_display_label:release"
@@ -2909,7 +2909,7 @@
   buildbucket: {
     server: "cr-buildbucket.appspot.com"
     bucket: "luci.chromeos.general"
-    builder: "LegacyRelease"
+    builder: "LTSRelease"
     tags: "cbb_branch:release-R86-13421.B"
     tags: "cbb_config:grunt-android-pi-pre-flight-branch"
     tags: "cbb_display_label:release"
@@ -2927,7 +2927,7 @@
   buildbucket: {
     server: "cr-buildbucket.appspot.com"
     bucket: "luci.chromeos.general"
-    builder: "LegacyRelease"
+    builder: "LTSRelease"
     tags: "cbb_branch:release-R86-13421.B"
     tags: "cbb_config:chell-chrome-no-afdo-uprev-pre-flight-branch"
     tags: "cbb_display_label:release"
@@ -2945,7 +2945,7 @@
   buildbucket: {
     server: "cr-buildbucket.appspot.com"
     bucket: "luci.chromeos.general"
-    builder: "LegacyRelease"
+    builder: "LTSRelease"
     tags: "cbb_branch:release-R86-13421.B"
     tags: "cbb_config:orderfile-generate-toolchain"
     tags: "cbb_display_label:release"
@@ -2963,7 +2963,7 @@
   buildbucket: {
     server: "cr-buildbucket.appspot.com"
     bucket: "luci.chromeos.general"
-    builder: "LegacyRelease"
+    builder: "LTSRelease"
     tags: "cbb_branch:release-R86-13421.B"
     tags: "cbb_config:orderfile-verify-toolchain"
     tags: "cbb_display_label:release"
@@ -2981,7 +2981,7 @@
   buildbucket: {
     server: "cr-buildbucket.appspot.com"
     bucket: "luci.chromeos.general"
-    builder: "LegacyRelease"
+    builder: "LTSRelease"
     tags: "cbb_branch:release-R86-13421.B"
     tags: "cbb_config:benchmark-afdo-generate"
     tags: "cbb_display_label:release"
@@ -2999,7 +2999,7 @@
   buildbucket: {
     server: "cr-buildbucket.appspot.com"
     bucket: "luci.chromeos.general"
-    builder: "LegacyRelease"
+    builder: "LTSRelease"
     tags: "cbb_branch:release-R86-13421.B"
     tags: "cbb_config:chrome-silvermont-release-afdo-verify"
     tags: "cbb_display_label:release"
@@ -3017,7 +3017,7 @@
   buildbucket: {
     server: "cr-buildbucket.appspot.com"
     bucket: "luci.chromeos.general"
-    builder: "LegacyRelease"
+    builder: "LTSRelease"
     tags: "cbb_branch:release-R86-13421.B"
     tags: "cbb_config:chrome-airmont-release-afdo-verify"
     tags: "cbb_display_label:release"
@@ -3035,7 +3035,7 @@
   buildbucket: {
     server: "cr-buildbucket.appspot.com"
     bucket: "luci.chromeos.general"
-    builder: "LegacyRelease"
+    builder: "LTSRelease"
     tags: "cbb_branch:release-R86-13421.B"
     tags: "cbb_config:chrome-broadwell-release-afdo-verify"
     tags: "cbb_display_label:release"
diff --git a/lib/config_lib.py b/lib/config_lib.py
index 010f6a4..4d6abca 100644
--- a/lib/config_lib.py
+++ b/lib/config_lib.py
@@ -79,6 +79,7 @@
 LUCI_BUILDER_INFORMATIONAL = 'Informational'
 LUCI_BUILDER_INFRA = 'Infra'
 LUCI_BUILDER_LEGACY_RELEASE = 'LegacyRelease'
+LUCI_BUILDER_LTS_RELEASE = 'LTSRelease'
 LUCI_BUILDER_PFQ = 'PFQ'
 LUCI_BUILDER_RAPID = 'Rapid'
 LUCI_BUILDER_RELEASE = 'Release'
@@ -92,6 +93,7 @@
     LUCI_BUILDER_INFORMATIONAL,
     LUCI_BUILDER_INFRA,
     LUCI_BUILDER_LEGACY_RELEASE,
+    LUCI_BUILDER_LTS_RELEASE,
     LUCI_BUILDER_PFQ,
     LUCI_BUILDER_RAPID,
     LUCI_BUILDER_RELEASE,