diff --git a/infra/config/global/cr-buildbucket.cfg b/infra/config/global/cr-buildbucket.cfg
index 10a7426..8ec67d2 100644
--- a/infra/config/global/cr-buildbucket.cfg
+++ b/infra/config/global/cr-buildbucket.cfg
@@ -127,6 +127,18 @@
       }
 
     }
+    # This builder is only triggered manually to build and archive maven
+    # artifacts for the desugared library.
+    builders {
+      name: "archive_lib_desugar"
+      priority: 25
+      mixins: "linux"
+      execution_timeout_secs: 3600  # 1h
+      recipe {
+        properties: "archive:True"
+        properties: "sdk_desugar:True"
+      }
+    }
     builders {
       name: "linux"
       mixins: "linux"
diff --git a/infra/config/global/luci-milo.cfg b/infra/config/global/luci-milo.cfg
index 42ee7f0..3f0af99 100644
--- a/infra/config/global/luci-milo.cfg
+++ b/infra/config/global/luci-milo.cfg
@@ -81,6 +81,11 @@
     short_name: "win"
   }
   builders {
+    name: "buildbucket/luci.r8.ci/archive_lib_desugar"
+    category: "archive_desugar"
+    short_name: "sdk_desugar"
+  }
+  builders {
     name: "buildbucket/luci.r8.ci/archive_release"
     category: "release archive"
     short_name: "archive"
diff --git a/infra/config/global/luci-scheduler.cfg b/infra/config/global/luci-scheduler.cfg
index 525bb2e..1150d18 100644
--- a/infra/config/global/luci-scheduler.cfg
+++ b/infra/config/global/luci-scheduler.cfg
@@ -43,6 +43,12 @@
 }
 
 trigger {
+  id: "desugar_library_trigger"
+  acl_sets: "default"
+  triggers: "archive_lib_desugar"
+}
+
+trigger {
   id: "branch-gitiles-trigger"
   acl_sets: "default"
   gitiles: {
@@ -94,6 +100,20 @@
 }
 
 job {
+  id: "archive_lib_desugar"
+  acl_sets: "default"
+  triggering_policy: {
+    max_concurrent_invocations: 1
+    max_batch_size: 1
+  }
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "luci.r8.ci"
+    builder: "archive_lib_desugar"
+  }
+}
+
+job {
   id: "linux"
   acl_sets: "default"
   triggering_policy: {
diff --git a/tools/git_utils.py b/tools/git_utils.py
index bd1694e..72485e1 100644
--- a/tools/git_utils.py
+++ b/tools/git_utils.py
@@ -11,8 +11,9 @@
   utils.PrintCmd(cmd)
   return subprocess.check_call(cmd)
 
-def GetHeadRevision(checkout_dir):
-  cmd = ['git', 'rev-parse', 'HEAD']
+def GetHeadRevision(checkout_dir, use_master=False):
+  revision_from = 'origin/master' if use_master else 'HEAD'
+  cmd = ['git', 'rev-parse', revision_from]
   utils.PrintCmd(cmd)
-  with ChangedWorkingDirectory(checkout_dir):
+  with utils.ChangedWorkingDirectory(checkout_dir):
     return subprocess.check_output(cmd).strip()
diff --git a/tools/trigger.py b/tools/trigger.py
index 1a33795..5ce6a42 100755
--- a/tools/trigger.py
+++ b/tools/trigger.py
@@ -6,6 +6,7 @@
 # Convenience script for triggering bots on specific commits.
 
 import json
+import git_utils
 import optparse
 import os
 import re
@@ -21,6 +22,8 @@
 #   triggers: "BUILDER_NAME"
 TRIGGERS_RE = r'^  triggers: "(\w.*)"'
 
+DESUGAR_BOT = 'archive_lib_desugar'
+
 def ParseOptions():
   result = optparse.OptionParser()
   result.add_option('--release',
@@ -30,10 +33,14 @@
                     help='Run the specified cl on the bots. This should be '
                     'the full url, e.g., '
                     'https://r8-review.googlesource.com/c/r8/+/37420/1')
+  result.add_option('--desugar',
+                    help='Run the library desugar and archiving bot.',
+                    default=False, action='store_true')
   result.add_option('--builder', help='Trigger specific builder')
   return result.parse_args()
 
 def get_builders():
+
   is_release = False
   master_builders = []
   release_builders = []
@@ -51,6 +58,9 @@
         else:
           assert 'release' not in builder
           master_builders.append(builder)
+  assert DESUGAR_BOT in master_builders
+  print 'Desugar builder:\n  ' + DESUGAR_BOT
+  master_builders.remove(DESUGAR_BOT)
   print 'Master builders:\n  ' + '\n  '.join(master_builders)
   print 'Release builders:\n  ' + '\n  '.join(release_builders)
   return (master_builders, release_builders)
@@ -74,7 +84,7 @@
 
 def Main():
   (options, args) = ParseOptions()
-  if len(args) != 1 and not options.cl:
+  if len(args) != 1 and not options.cl and not options.desugar:
     print 'Takes exactly one argument, the commit to run'
     return 1
 
@@ -82,13 +92,21 @@
     print 'You can\'t run cls on the release bots'
     return 1
 
-  commit = None if options.cl else args[0]
+  if options.cl and options.desugar:
+    print 'You can\'t run cls on the desugar bot'
+    return 1
+
+  commit = None if (options.cl or options.desugar)  else args[0]
   (master_builders, release_builders) = get_builders()
   builders = release_builders if options.release else master_builders
   if options.builder:
     builder = options.builder
     assert builder in master_builders or builder in release_builders
     builders = [options.builder]
+  if options.desugar:
+    builders = [DESUGAR_BOT]
+    trigger_builders(
+        builders, git_utils.GetHeadRevision(utils.REPO_ROOT, use_master=True))
   if options.cl:
     trigger_cl(builders, options.cl)
   else:
