Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions .github/workflows/docs-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,21 @@ jobs:
with:
python-version: '3.13'

- name: Set up JDK 11
# Pinned to JDK 8 on purpose, and not the same choice as docs-pr.yml.
# That workflow runs `make -C docs test`, which builds only the current
# branch -- scylla-4.x, which is post "build: drop Java 8 support" and so
# is fine on 11. This one runs `make -C docs multiversion`, which builds
# EVERY version in conf.py's BRANCHES, LATEST_VERSION included. All of
# them are frozen release branches that predate that commit and compile
# via error-prone's javac 9 shim; it cannot read JDK 11 class files and
# fails with "class file has wrong version 55.0, should be 53.0".
# scylla-4.x is not itself in BRANCHES, so nothing built here needs a
# newer JDK. Do not raise this without building the newest branch in
# BRANCHES on the new JDK first.
- name: Set up JDK 8.0
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
java-version: '11'
java-version: '8'
distribution: 'temurin'

- name: Install uv
Expand All @@ -53,11 +64,6 @@ jobs:

- name: Build docs
run: make -C docs multiversion
env:
# Old release branches (e.g. scylla-4.15.0.x) have javadoc
# comments that only pass doclint on JDK 8.
# Don't fail their multiversion javadoc builds on JDK 11.
MAVEN_OPTS: -Dmaven.javadoc.failOnError=false

- name: Deploy docs to GitHub Pages
run: ./docs/_utils/deploy.sh
Expand Down
8 changes: 7 additions & 1 deletion docs/_utils/multiversion.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
#! /bin/bash

# javadoc.sh comes from each version's own tree and runs a full Maven build, so
# it can break on a frozen release branch for reasons unrelated to the docs.
# sphinx-multiversion's run_commands() only rescues OSError, so an exit code
# there aborts the whole multiversion run and the site publishes nothing -- that
# is how every build between 2026-05-26 and 2026-08-31 was lost. Degrade to a
# missing /api/ for the one version instead, and say so in the log.
cd .. && sphinx-multiversion docs/source docs/_build/dirhtml \
--pre-build "bash -c \"(find . -mindepth 2 -name README.md -execdir mv '{}' index.md ';'; find . -mindepth 2 -name README.rst -execdir mv '{}' index.rst ';')\"" \
--post-build './docs/_utils/javadoc.sh'
--post-build "bash -c './docs/_utils/javadoc.sh || echo \"::warning::javadoc build failed for \$SPHINX_MULTIVERSION_NAME - its api pages will be missing\"'"