Skip to content
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
7cbb121
Initial
newtork Oct 15, 2025
1a8add4
Reduce change
newtork Oct 16, 2025
a4ce86e
Reduce change
newtork Oct 16, 2025
bc39fe9
Add workflow
newtork Oct 16, 2025
9359b53
Add workflow
newtork Oct 16, 2025
b5aafc5
Add workflow
newtork Oct 16, 2025
28eeb9f
Add workflow
newtork Oct 16, 2025
57aee5d
Add workflow
newtork Oct 16, 2025
38a60a7
Add workflow
newtork Oct 16, 2025
fa71e3a
Add workflow
newtork Oct 16, 2025
8af65c4
Add workflow
newtork Oct 16, 2025
542ada5
Add workflow
newtork Oct 16, 2025
737b225
Add workflow
newtork Oct 16, 2025
82fcb61
Add workflow
newtork Oct 16, 2025
bd6fb25
Add workflow
newtork Oct 16, 2025
d1465b8
Add workflow
newtork Oct 16, 2025
1144530
Add workflow
newtork Oct 16, 2025
fceadbb
Add workflow
newtork Oct 16, 2025
16f60da
Add workflow
newtork Oct 16, 2025
6f9268f
Add workflow
newtork Oct 16, 2025
a9ffff5
Invoke workflow during release preparation
newtork Oct 21, 2025
5e99baa
Continue on error
newtork Oct 21, 2025
5febe31
Fix checkout
newtork Oct 21, 2025
df0c9df
Fix checkout
newtork Oct 21, 2025
f8c6dfa
Merge branch 'main' into javadoc-aggregate-delombok
newtork Oct 21, 2025
3d011e3
Update prepare-release.yaml
newtork Oct 21, 2025
a83cecc
Update .github/workflows/javadoc.yaml
newtork Oct 22, 2025
4d63eb8
Mention JavaDoc PR in prepare-release-workflow
newtork Oct 22, 2025
9ea19cf
Merge remote-tracking branch 'origin/main' into javadoc-aggregate-del…
newtork Oct 22, 2025
46fe88e
chore: Update JavaDoc Maven Plugin to `3.12.0` (#979)
newtork Oct 27, 2025
3b580e5
Make javadoc branch name predictable; Automatically merge on perform-…
newtork Oct 28, 2025
c4b7908
Merge remote-tracking branch 'origin/javadoc-aggregate-delombok' into…
newtork Oct 28, 2025
0ebdce0
Merge branch 'main' into javadoc-aggregate-delombok
Jonas-Isr Oct 28, 2025
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
109 changes: 109 additions & 0 deletions .github/workflows/javadoc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: JavaDoc to Documentation Portal

on:
workflow_dispatch:
inputs:
branch:
description: 'Branch to clone'
required: true
default: 'rel/5.24.0'

env:
JAVA_VERSION: 17
DOCS_REPO: SAP/cloud-sdk
PROJECTS: "!:rfc,!:dwc-cf,!:datamodel-metadata-generator,!:odata-generator,!:odata-generator-maven-plugin,!:odata-generator-utility,!:odata-v4-generator,!:odata-v4-generator-maven-plugin,!:s4hana-connectivity,!:soap,!:testutil,!:s4hana-core"

jobs:
build:
name: "JavaDoc to Documentation Portal"
runs-on: ubuntu-latest

steps:
- name: "Prepare git"
run: |
git config --global user.email "[email protected]"
git config --global user.name "SAP Cloud SDK Bot"

- name: "Checkout Repository"
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: "Switch branch"
run: git checkout "${{ github.event.inputs.branch || 'main' }}"

- name: "Set up JDK 17"
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'

- name: "Determine Major Version"
id: determine-major-version
run: |
echo "MAJOR_VERSION=$(jq -r '.version' latest.json | cut -d '.' -f 1)" >> $GITHUB_OUTPUT
echo ${GITHUB_OUTPUT}

- name: "Install project (skip tests)"
run: mvn install -DskipTests --quiet

- name: "Process sources"
run: mvn process-sources -Drelease --fail-at-end --projects "${PROJECTS}" --quiet

- name: "Copy delombok sources"
run: find . -type d -path "*/target/delombok" -exec sh -c 'cp -r "$1"/* "$(dirname $(dirname "$1"))/src/main/java/"' _ {} \;

- name: "Generate aggregated Javadoc"
run: mvn clean javadoc:aggregate -Drelease -Djava.failOnWarning=false --projects "${PROJECTS}" --quiet

- name: "Checkout Docs Repository"
uses: actions/checkout@v4
with:
repository: ${{ env.DOCS_REPO }}
path: .cloud-sdk-docs
token: ${{ secrets.BOT_SDK_JS_FOR_DOCS_REPO_PR }}

- name: "Replace JavaDoc"
id: replace-javadoc
run: |
TARGET_DIR=./.cloud-sdk-docs/static/java-api/v${{ steps.determine-major-version.outputs.MAJOR_VERSION }}

ls -lA target
rm -rf $TARGET_DIR
mkdir -p $TARGET_DIR
mv target/reports/apidocs/* $TARGET_DIR

cd ./.cloud-sdk-docs
git add -A .

CHANGED_FILES="$(git status -s)"
if [[ -z "$CHANGED_FILES" ]]; then
echo "[DEBUG] No changes to API docs detected, skipping Pull Request creation."
echo "CREATE_PR=false" >> $GITHUB_OUTPUT
exit 0
fi

echo "CREATE_PR=true" >> $GITHUB_OUTPUT
BRANCH_NAME=java/release-docs-${{ steps.determine-major-version.outputs.MAJOR_VERSION }}
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_OUTPUT

git switch --create $BRANCH_NAME
git commit -m "chore: Update JavaDocs for release ${{ needs.bump-version.outputs.release-version }}"
COMMIT_SHA=$(git log -1 --pretty=format:"%H")
echo "COMMIT_SHA=$COMMIT_SHA" >> $GITHUB_OUTPUT

git push origin $BRANCH_NAME

- name: "Create JavaDoc PR"
id: create-javadoc-pr
if: ${{ steps.replace-javadoc.outputs.CREATE_PR == 'true' }}
working-directory: ./.cloud-sdk-docs
run: |
PR_TITLE="Java: Update JavaDocs for release ${{ needs.bump-version.outputs.release-version }}"
PR_BODY="Replace the contents of v${{ steps.determine-major-version.outputs.MAJOR_VERSION }} API docs with the latest release of the SDK."

PR_URL=$(gh pr create --title "$PR_TITLE" --body "$PR_BODY" --repo "${{ env.DOCS_REPO }}")
echo "PR_URL=$PR_URL" >> $GITHUB_OUTPUT
echo "PR: $PR_URL" >> $GITHUB_STEP_SUMMARY
env:
GH_TOKEN: ${{ secrets.BOT_SDK_JS_FOR_DOCS_REPO_PR }}
Comment on lines 98 to 110
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should add a TODO to the PR created in the prepare-release workflow to review, approve, and merge this JavaDoc PR after the release.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the workflow is triggered async, I can't put a direct URL to the upcoming JavaDoc PR.
However I used a generic link which should suffice, IMHO

4 changes: 3 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1015,7 +1015,6 @@
<packages>com.sap.cloud.sdk.s4hana*</packages>
</group>
</groups>
<sourcepath>${project.basedir}/target/delombok</sourcepath>
<overview>${project.rootdir}/javadoc.overview.html</overview>
</configuration>
<executions>
Expand All @@ -1024,6 +1023,9 @@
<goals>
<goal>jar</goal>
</goals>
<configuration>
<sourcepath>${project.basedir}/target/delombok</sourcepath>
</configuration>
</execution>
</executions>
</plugin>
Expand Down