Skip to content

Commit af6b211

Browse files
committed
docs: make multiversion build Java 11 compatible
1 parent 5a61e12 commit af6b211

5 files changed

Lines changed: 77 additions & 7 deletions

File tree

.github/workflows/docs-pages.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ on:
88
- scylla-4.x
99
- 'scylla-**'
1010
paths:
11+
- '.github/workflows/docs-pages.yml'
12+
- '.github/workflows/docs-pr.yml'
1113
- 'docs/**'
1214
- 'faq/**'
1315
- 'manual/**'

.github/workflows/docs-pr.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ on:
1010
branches:
1111
- scylla-4.x
1212
paths:
13+
- '.github/workflows/docs-pages.yml'
14+
- '.github/workflows/docs-pr.yml'
1315
- 'docs/**'
1416
- 'faq/**'
1517
- 'manual/**'
@@ -45,3 +47,6 @@ jobs:
4547

4648
- name: Build docs
4749
run: make -C docs test
50+
51+
- name: Build published docs
52+
run: make -C docs multiversion

docs/_utils/javadoc.sh

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
#!/bin/bash
2+
set -euo pipefail
23

34
# Install dependencies
4-
mvn install -DskipTests -T 1C
5+
mvn install -DskipTests -Dmaven.javadoc.skip=true -T 1C
56

67
# Define output folder
78
OUTPUT_DIR="docs/_build/dirhtml/api"
8-
if [[ "$SPHINX_MULTIVERSION_OUTPUTDIR" != "" ]]; then
9+
if [[ "${SPHINX_MULTIVERSION_OUTPUTDIR:-}" != "" ]]; then
910
OUTPUT_DIR="$SPHINX_MULTIVERSION_OUTPUTDIR/api"
1011
echo "HTML_OUTPUT = $OUTPUT_DIR" >> doxyfile
1112
fi
1213

1314
# Generate javadoc
1415
mvn javadoc:javadoc -T 1C
15-
[ -d $OUTPUT_DIR ] && rm -r $OUTPUT_DIR
16+
if [[ -d "$OUTPUT_DIR" ]]; then
17+
rm -r "$OUTPUT_DIR"
18+
fi
1619
mkdir -p "$OUTPUT_DIR"
17-
mv -f core/target/site/apidocs/* $OUTPUT_DIR
20+
mv -f core/target/site/apidocs/* "$OUTPUT_DIR"
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/bin/bash
2+
set -euo pipefail
3+
4+
VERSION_NAME="${SPHINX_MULTIVERSION_NAME:-unknown}"
5+
6+
echo "Building Javadocs for ${VERSION_NAME} with Java:"
7+
java -version
8+
9+
make_legacy_checkout_java11_compatible() {
10+
if [[ ! -f pom.xml ]] || ! grep -q "javac-with-errorprone" pom.xml; then
11+
return
12+
fi
13+
14+
echo "Adapting legacy ${VERSION_NAME} checkout for a Java 11 docs build"
15+
16+
perl -0pi -e 's/\n\s*<compilerId>javac-with-errorprone<\/compilerId>//g' pom.xml
17+
perl -0pi -e 's/\n\s*<forceJavacCompilerUse>true<\/forceJavacCompilerUse>//g' pom.xml
18+
perl -0pi -e 's/\n\s*<compilerArgs[^>]*>\s*<compilerArg>-Xep:FutureReturnValueIgnored:OFF<\/compilerArg>.*?<\/compilerArgs>//sg' pom.xml
19+
perl -0pi -e 's/\n\s*<dependencies>\s*<dependency>\s*<groupId>org\.codehaus\.plexus<\/groupId>\s*<artifactId>plexus-compiler-javac-errorprone<\/artifactId>.*?<\/dependencies>//sg' pom.xml
20+
perl -0pi -e 's/<failOnWarning>true<\/failOnWarning>/<failOnWarning>false<\/failOnWarning>/g' pom.xml
21+
}
22+
23+
make_legacy_javadocs_java11_compatible() {
24+
if [[ -f docs/_utils/javadoc.sh ]] && ! grep -q -- "-Dmaven.javadoc.skip=true" docs/_utils/javadoc.sh; then
25+
perl -0pi -e 's/mvn install -DskipTests( -T 1C)?/mvn install -DskipTests -Dmaven.javadoc.skip=true$1/g' \
26+
docs/_utils/javadoc.sh
27+
fi
28+
29+
if [[ -f pom.xml ]] && grep -q "<name>leaks</name>" pom.xml; then
30+
perl -0pi -e 's/<name>leaks<\/name>/<name>leaks-private-api<\/name>/g' pom.xml
31+
fi
32+
33+
if [[ -f pom.xml ]]; then
34+
perl -0pi -e 's/\n\s*<links>\s*<link>.*?<\/links>//sg' pom.xml
35+
fi
36+
37+
if [[ -f core/src/main/java/com/datastax/oss/driver/api/core/CqlIdentifier.java ]]; then
38+
perl -0pi -e 's/<table summary="examples">/<table>\n * <caption>Examples<\/caption>/g' \
39+
core/src/main/java/com/datastax/oss/driver/api/core/CqlIdentifier.java
40+
fi
41+
}
42+
43+
clean_javadoc_output() {
44+
local output_dir="docs/_build/dirhtml/api"
45+
46+
if [[ -n "${SPHINX_MULTIVERSION_OUTPUTDIR:-}" ]]; then
47+
output_dir="${SPHINX_MULTIVERSION_OUTPUTDIR}/api"
48+
fi
49+
50+
rm -rf "$output_dir"
51+
}
52+
53+
make_legacy_checkout_java11_compatible
54+
make_legacy_javadocs_java11_compatible
55+
clean_javadoc_output
56+
57+
bash -e ./docs/_utils/javadoc.sh

docs/_utils/multiversion.sh

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
#! /bin/bash
1+
#! /bin/bash
2+
set -euo pipefail
23

3-
cd .. && sphinx-multiversion docs/source docs/_build/dirhtml \
4+
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
5+
6+
cd "$REPO_ROOT" && sphinx-multiversion docs/source docs/_build/dirhtml \
47
--pre-build "bash -c \"(find . -mindepth 2 -name README.md -execdir mv '{}' index.md ';'; find . -mindepth 2 -name README.rst -execdir mv '{}' index.rst ';')\"" \
5-
--post-build './docs/_utils/javadoc.sh'
8+
--post-build "$REPO_ROOT/docs/_utils/multiversion-javadoc.sh"

0 commit comments

Comments
 (0)