]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
⚡️ Build docs for languages in parallel in subprocesses to speed up CI (#2242)
authorSebastián Ramírez <tiangolo@gmail.com>
Sun, 25 Oct 2020 11:59:13 +0000 (12:59 +0100)
committerGitHub <noreply@github.com>
Sun, 25 Oct 2020 11:59:13 +0000 (12:59 +0100)
scripts/docs.py

index 25ca5190018abcf357fc7993b4dee6e47c46fdbe..284f344f68026725ca7d0f9b7caa245733b53639 100644 (file)
@@ -1,6 +1,7 @@
 import os
 import shutil
 from http.server import HTTPServer, SimpleHTTPRequestHandler
+from multiprocessing import Pool
 from pathlib import Path
 from typing import Dict, Optional, Tuple
 
@@ -207,10 +208,15 @@ def build_all():
     typer.echo(f"Building docs for: en")
     mkdocs.commands.build.build(mkdocs.config.load_config(site_dir=str(site_path)))
     os.chdir(current_dir)
+
+    langs = []
     for lang in get_lang_paths():
         if lang == en_build_path or not lang.is_dir():
             continue
-        build_lang(lang.name)
+        langs.append(lang.name)
+    cpu_count = os.cpu_count() or 1
+    with Pool(cpu_count * 2) as p:
+        p.map(build_lang, langs)
     typer.echo("Copying en index.md to README.md")
     en_index = en_build_path / "docs" / "index.md"
     shutil.copyfile(en_index, "README.md")