[KeepAnno] Archive javadoc as part of the build

Bug: b/248408342
Change-Id: I09f6ed01262fe27425129266de404feaf9ad64a9
diff --git a/tools/archive.py b/tools/archive.py
index fd250dd..8de974f 100755
--- a/tools/archive.py
+++ b/tools/archive.py
@@ -171,7 +171,9 @@
         if (not options.skip_gradle_build):
             gradle.RunGradle([
                 utils.GRADLE_TASK_CONSOLIDATED_LICENSE,
-                utils.GRADLE_TASK_KEEP_ANNO_JAR, utils.GRADLE_TASK_R8,
+                utils.GRADLE_TASK_KEEP_ANNO_JAR,
+                utils.GRADLE_TASK_KEEP_ANNO_DOC,
+                utils.GRADLE_TASK_R8,
                 utils.GRADLE_TASK_R8LIB, utils.GRADLE_TASK_R8LIB_NO_DEPS,
                 utils.GRADLE_TASK_THREADING_MODULE_BLOCKING,
                 utils.GRADLE_TASK_THREADING_MODULE_SINGLE_THREADED,
@@ -229,6 +231,25 @@
             '-PspdxRevision=' + GetGitHash()
         ])
 
+        # Upload directories.
+        dirs_for_archiving = [
+            (utils.KEEPANNO_ANNOTATIONS_DOC, "keepanno/javadoc"),
+        ]
+        for (src_dir, dst_dir) in dirs_for_archiving:
+            destination = GetUploadDestination(version, dst_dir, is_main)
+            print(f'Uploading {src_dir} to {destination}')
+            if options.dry_run:
+                if options.dry_run_output:
+                    dry_run_destination = os.path.join(options.dry_run_output, dst_dir)
+                    print(f'Dry run, not actually uploading. Copying to {dry_run_destination}')
+                    shutil.copytree(src_dir, dry_run_destination)
+                else:
+                    print('Dry run, not actually uploading')
+            else:
+                utils.upload_directory_to_cloud_storage(src_dir, destination)
+                print(f'Directory available at: {GetUrl(version, dst_dir, is_main)}')
+
+        # Upload files.
         for_archiving = [
             utils.R8_JAR, utils.R8LIB_JAR, utils.R8LIB_JAR + '.map',
             utils.R8LIB_JAR + '_map.zip', utils.R8_FULL_EXCLUDE_DEPS_JAR,