Skip to content

Commit

Permalink
chore(rtd): Speed up doc build with uv
Browse files Browse the repository at this point in the history
  • Loading branch information
effigies committed Nov 15, 2024
1 parent 6922930 commit d944bd4
Showing 1 changed file with 20 additions and 6 deletions.
26 changes: 20 additions & 6 deletions readthedocs.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,34 @@
version: 2

build:
os: ubuntu-22.04
os: ubuntu-lts-latest
apt_packages:
- jq
tools:
python: "3.11"
python: latest
jobs:
# The *_create_environment and post_install steps replace RTD's virtual environment
# steps with uv, a much faster alternative to virtualenv+pip.
pre_create_environment:
- asdf plugin add uv
- asdf install uv latest
- asdf global uv latest
# Turn `python -m virtualenv` into `python -c pass`
- truncate --size 0 $( dirname $( uv python find ) )/../lib/python3*/site-packages/virtualenv/__main__.py
post_create_environment:
- uv venv $READTHEDOCS_VIRTUALENV_PATH
# Turn `python -m pip` into `python -c pass`
- truncate --size 0 $( ls -d $READTHEDOCS_VIRTUALENV_PATH/lib/python3* )/site-packages/pip.py
# post_install replaces the top-level {python: {install: [{requirements: requirements.txt}]}}
post_install:
# Use a cache dir in the same mount to halve the install time
- VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH uv pip install --cache-dir $READTHEDOCS_VIRTUALENV_PATH/../../uv_cache -r docs/requirements.txt
# Normal pre-build step to inject schema.json into the source directory
# so schema.json is hosted alongside the specification documents
pre_build:
- bst -v export --output src/schema.json
- tools/no-bad-schema-paths.sh src/schema.json # README.md might need fixing

mkdocs:
configuration: mkdocs.yml
fail_on_warning: true

python:
install:
- requirements: requirements.txt

0 comments on commit d944bd4

Please sign in to comment.