如何在Read the Docs的PR构建流程中禁用搜索索引构建
RTD PR构建禁用搜索索引操作方案
完全可以针对PR构建场景单独禁用搜索索引构建步骤,配置后可跳过Updating searchtools的20分钟耗时,且不会影响正式版本的文档搜索功能,操作步骤如下:
1. 修改Sphinx配置文件conf.py
RTD在构建时会自动注入专属环境变量,其中READTHEDOCS_VERSION_TYPE值为external时就代表当前是PR构建,只需添加条件判断禁用搜索相关配置即可:
import os # 提前判断是否为PR构建场景 is_pr_build = os.environ.get("READTHEDOCS_VERSION_TYPE") == "external" if is_pr_build: # 移除Sphinx内置搜索扩展 if "sphinx.ext.search" in extensions: extensions.remove("sphinx.ext.search") # 关闭HTML页面搜索功能 html_use_search = False # 禁用RTD平台的搜索索引生成逻辑 rtd_generate_search_index = False
2. 可选:补充RTD配置文件优化(.readthedocs.yaml)
如果需要进一步压缩PR构建耗时,还可以在配置文件中针对PR构建关闭额外的非必要步骤,示例配置如下:
version: 2 build: os: ubuntu-22.04 tools: python: "3.10" jobs: pre_build: # PR构建时跳过额外的资源处理步骤,可根据自身项目调整 - | if [ "$READTHEDOCS_VERSION_TYPE" = "external" ]; then export SPHINX_BUILD_OPTS="-j auto" fi sphinx: configuration: docs/conf.py
效果验证
配置完成后提交PR测试,构建日志将不再出现Updating searchtools for Read the Docs search...的执行步骤,PR构建总耗时可压缩到10分钟以内。正式版本的文档搜索功能不会受到任何影响。
内容的提问来源于stack exchange,提问作者FirefoxMetzger
相关产品推荐
相关产品推荐

