Skip to content

Commit 7c8bb5d

Browse files
committed
docs: first cut of Antora docs site
1 parent 416bc88 commit 7c8bb5d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+7907
-0
lines changed

.github/workflows/docs.yml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: Deploy Docs
2+
on:
3+
workflow_dispatch:
4+
release:
5+
types: [published]
6+
repository_dispatch:
7+
types: [build-docs]
8+
9+
permissions:
10+
contents: read
11+
pages: write
12+
id-token: write
13+
14+
# Allow only one concurrent deployment
15+
concurrency:
16+
group: "pages"
17+
cancel-in-progress: true
18+
19+
jobs:
20+
build:
21+
name: Build and Deploy Docs
22+
runs-on: ubuntu-latest
23+
environment:
24+
name: github-pages
25+
url: ${{ steps.deployment.outputs.page_url }}
26+
steps:
27+
- name: Checkout
28+
uses: actions/checkout@v4
29+
with:
30+
fetch-depth: 0
31+
32+
- name: Set up Java
33+
uses: actions/setup-java@v4
34+
with:
35+
java-version: 21
36+
distribution: 'zulu'
37+
38+
- name: Set up Node.js
39+
uses: actions/setup-node@v4
40+
with:
41+
node-version: 20
42+
43+
- name: Cache Gradle
44+
uses: actions/cache@v4
45+
with:
46+
path: ~/.gradle/caches
47+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}-${{ hashFiles('**/gradle.properties') }}
48+
restore-keys: |
49+
${{ runner.os }}-gradle-
50+
51+
- name: Cache Gradle wrapper
52+
uses: actions/cache@v4
53+
with:
54+
path: ~/.gradle/wrapper
55+
key: ${{ runner.os }}-gradlew-${{ hashFiles('**/gradlew') }}
56+
restore-keys: ${{ runner.os }}-gradlew-
57+
58+
- name: Set Release Version in Docs
59+
run: |
60+
VERSION=$(cat gradle.properties | grep "version" | cut -d'=' -f2 | tr -d ' ')
61+
echo "Setting documentation version to $VERSION"
62+
sed -i "s/display_version: '.*'/display_version: '$VERSION'/" docs/content/antora.yml
63+
sed -i "s/redisvl-version: '.*'/redisvl-version: '$VERSION'/" docs/content/antora.yml
64+
65+
- name: Build Documentation
66+
run: |
67+
./gradlew :docs:build
68+
69+
- name: Add .nojekyll file
70+
run: touch docs/build/site/.nojekyll
71+
72+
- name: Setup Pages
73+
uses: actions/configure-pages@v4
74+
75+
- name: Upload artifact
76+
uses: actions/upload-pages-artifact@v3
77+
with:
78+
path: 'docs/build/site'
79+
80+
- name: Deploy to GitHub Pages
81+
id: deployment
82+
uses: actions/deploy-pages@v4

build.gradle.kts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,47 @@ tasks.register<Copy>("copyJarToNotebooks") {
147147
// Make build depend on copying jar
148148
tasks.named("build") {
149149
dependsOn("copyJarToNotebooks")
150+
}
151+
152+
// Add aggregated Javadoc generation
153+
tasks.register<Javadoc>("aggregateJavadoc") {
154+
description = "Generate aggregated Javadoc for all modules"
155+
group = "documentation"
156+
157+
val coreProject = project(":core")
158+
source(coreProject.the<SourceSetContainer>()["main"].allJava)
159+
classpath = files(coreProject.the<SourceSetContainer>()["main"].compileClasspath)
160+
setDestinationDir(layout.buildDirectory.dir("docs/javadoc/aggregate").get().asFile)
161+
162+
(options as StandardJavadocDocletOptions).apply {
163+
title = "RedisVL ${project.version} API"
164+
windowTitle = "RedisVL ${project.version}"
165+
author(true)
166+
version(true)
167+
use(true)
168+
splitIndex(true)
169+
links(
170+
"https://docs.oracle.com/en/java/javase/17/docs/api/",
171+
"https://www.javadoc.io/doc/redis.clients/jedis/latest/"
172+
)
173+
}
174+
175+
// Ensure Javadoc generation succeeds
176+
isFailOnError = false
177+
}
178+
179+
// Individual module Javadocs
180+
tasks.register("generateModuleJavadocs") {
181+
description = "Generate Javadoc for individual modules"
182+
group = "documentation"
183+
184+
val coreProject = project(":core")
185+
dependsOn(coreProject.tasks.named("javadoc"))
186+
187+
doLast {
188+
copy {
189+
from(coreProject.tasks.named<Javadoc>("javadoc").get().destinationDir)
190+
into(layout.buildDirectory.dir("docs/javadoc/modules/core").get().asFile)
191+
}
192+
}
150193
}

0 commit comments

Comments
 (0)