service: sysroot: Add support to archive entire sysroot

Add support to archive the entire sysroot.

BUG=b:273598014
TEST=run_tests service/sysroot_unittest.py

Change-Id: I276131eff56d0cf7f455c3ec18f688880c2e0dd4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4355326
Reviewed-by: Alex Klein <saklein@chromium.org>
Commit-Queue: Ram Chandrasekar <rchandrasekar@google.com>
Tested-by: Ram Chandrasekar <rchandrasekar@google.com>
diff --git a/api/controller/sysroot.py b/api/controller/sysroot.py
index 00222b0..b19b7ce 100644
--- a/api/controller/sysroot.py
+++ b/api/controller/sysroot.py
@@ -123,6 +123,7 @@
         in_proto.ArtifactType.BREAKPAD_DEBUG_SYMBOLS: sysroot.BundleBreakpadSymbols,
         in_proto.ArtifactType.DEBUG_SYMBOLS: sysroot.BundleDebugSymbols,
         in_proto.ArtifactType.FUZZER_SYSROOT: sysroot.CreateFuzzerSysroot,
+        in_proto.ArtifactType.SYSROOT_ARCHIVE: sysroot.ArchiveSysroot,
     }
     # pylint: enable=line-too-long
 
@@ -156,8 +157,8 @@
                 if result:
                     generated.append(
                         {
-                            "paths": [result]
-                            if isinstance(result, str)
+                            "paths": [str(result)]
+                            if isinstance(result, (os.PathLike, str))
                             else result,
                             "type": artifact_type,
                         }