From 592c85b5ae3830384f8c944084fa40f02659b79c Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Mon, 5 Jan 2026 18:07:42 -0800 Subject: [PATCH 1/6] fix javadocs-yml 2, add manual script. --- .github/workflows/javadoc.yml | 17 ++++++++++----- tools/ManualJavadocsDeploy.sh | 41 +++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 5 deletions(-) create mode 100755 tools/ManualJavadocsDeploy.sh diff --git a/.github/workflows/javadoc.yml b/.github/workflows/javadoc.yml index 401cda867..eb68e1619 100644 --- a/.github/workflows/javadoc.yml +++ b/.github/workflows/javadoc.yml @@ -3,6 +3,7 @@ name: Deploy Versioned Javadoc (Manual Trigger) # Select the target TAG where to run the workflow from. # This TAG name becomes the subdirectory under branch gh-pages/docs/${TAG} # where the javadocs will be copied to. +# The gh-pages/docs branch/folder must exist. on: workflow_dispatch: @@ -47,25 +48,31 @@ jobs: git config user.name "github-actions[bot]" # 3. Ensure gh-pages exists and is fetched - git fetch origin gh-pages --depth=1 || git branch gh-pages + echo "git fetch origin gh-pages" + git fetch origin gh-pages # 4. Create worktree for the gh-pages branch in a separate folder + echo "git worktree add ./gh-pages-dir origin/gh-pages" git worktree add ./gh-pages-dir origin/gh-pages # 5. Deployment Logic in a subshell to capture exit code ( - set -e # Exit subshell on any internal error - TARGET_PATH="gh-pages-dir/docs/$TAG_NAME" # target directory inside the worktree + set -e + TARGET_PATH="gh-pages-dir/docs/$TAG_NAME" mkdir -p "$TARGET_PATH" + echo "cp -a target/site/apidocs/. $TARGET_PATH/" cp -a target/site/apidocs/. "$TARGET_PATH/" - cd gh-pages-dir - git add . + echo "git add docs/$TAG_NAME" + git add "docs/$TAG_NAME" if git diff --staged --quiet; then echo "No changes detected for Javadoc $TAG_NAME." else + echo "Changes detected for Javadoc $TAG_NAME." + echo "git commit ..." git commit -m "Manual Javadoc deployment for tag $TAG_NAME" + echo "git push origin gh-pages" git push origin gh-pages fi ) || EXIT_CODE=$? diff --git a/tools/ManualJavadocsDeploy.sh b/tools/ManualJavadocsDeploy.sh new file mode 100755 index 000000000..e0b991885 --- /dev/null +++ b/tools/ManualJavadocsDeploy.sh @@ -0,0 +1,41 @@ +#!/bin/bash +set -e + +TAG_NAME="test" +# Build and Generate Javadoc +# POM is configured to output to target/site/apidocs +echo "mvn clean javadoc:javadoc" +mvn clean javadoc:javadoc + +echo "git fetch origin gh-pages" +git fetch origin gh-pages + +echo "Create worktree" +git worktree add ./gh-pages-dir origin/gh-pages +EXIT_CODE=0 +( + set -e + TARGET_PATH="gh-pages-dir/docs/$TAG_NAME" + mkdir -p "$TARGET_PATH" + cp -a target/site/apidocs/. "$TARGET_PATH/" + cd gh-pages-dir + git add "docs/$TAG_NAME" + + if git diff --staged --quiet; then + echo "No changes detected for Javadoc $TAG_NAME." + else + echo "Changes detected for Javadoc $TAG_NAME." + git status + git commit -m "Manual Javadoc deployment for tag $TAG_NAME" + git push origin gh-pages + fi +) || EXIT_CODE=$? + +# Cleanup +echo "Cleaning up worktree..." +git worktree remove --force ./gh-pages-dir || true + +# Final exit based on subshell success +exit $EXIT_CODE +if: success() +run: echo "Javadoc for $TAG_NAME is now live on gh-pages." \ No newline at end of file From ca4f78ecfe6e28cba53621034c801108c8970459 Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Tue, 6 Jan 2026 12:28:05 -0800 Subject: [PATCH 2/6] update ManualJavadocDeploy.sh --- tools/ManualJavadocsDeploy.sh | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tools/ManualJavadocsDeploy.sh b/tools/ManualJavadocsDeploy.sh index e0b991885..34108808d 100755 --- a/tools/ManualJavadocsDeploy.sh +++ b/tools/ManualJavadocsDeploy.sh @@ -4,13 +4,13 @@ set -e TAG_NAME="test" # Build and Generate Javadoc # POM is configured to output to target/site/apidocs -echo "mvn clean javadoc:javadoc" +echo "ECHO: mvn clean javadoc:javadoc" mvn clean javadoc:javadoc -echo "git fetch origin gh-pages" +echo "ECHO: git fetch origin gh-pages" git fetch origin gh-pages -echo "Create worktree" +echo "ECHO: Create worktree" git worktree add ./gh-pages-dir origin/gh-pages EXIT_CODE=0 ( @@ -22,20 +22,23 @@ EXIT_CODE=0 git add "docs/$TAG_NAME" if git diff --staged --quiet; then - echo "No changes detected for Javadoc $TAG_NAME." + echo "ECHO: No changes detected for Javadoc $TAG_NAME." else - echo "Changes detected for Javadoc $TAG_NAME." + echo "ECHO: Changes detected for Javadoc $TAG_NAME." + echo "ECHO: git status:" git status + echo "ECHO: git commit ..." git commit -m "Manual Javadoc deployment for tag $TAG_NAME" + echo "ECHO: git push origin gh-pages" git push origin gh-pages fi ) || EXIT_CODE=$? # Cleanup -echo "Cleaning up worktree..." +echo "ECHO: Cleaning up worktree..." git worktree remove --force ./gh-pages-dir || true # Final exit based on subshell success exit $EXIT_CODE if: success() -run: echo "Javadoc for $TAG_NAME is now live on gh-pages." \ No newline at end of file +run: echo "ECHO: Javadoc for $TAG_NAME is now live on gh-pages." \ No newline at end of file From 902ed931e095f5762f7bee70de6291518e6c5b36 Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Tue, 6 Jan 2026 12:58:35 -0800 Subject: [PATCH 3/6] update ManualJavadocsDeploy.sh 2 --- tools/ManualJavadocsDeploy.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/ManualJavadocsDeploy.sh b/tools/ManualJavadocsDeploy.sh index 34108808d..683088f56 100755 --- a/tools/ManualJavadocsDeploy.sh +++ b/tools/ManualJavadocsDeploy.sh @@ -19,6 +19,9 @@ EXIT_CODE=0 mkdir -p "$TARGET_PATH" cp -a target/site/apidocs/. "$TARGET_PATH/" cd gh-pages-dir + echo "ECHO: git pull origin gh-pages --rebase" + git pull origin gh-pages --rebase + echo "ECHO: git add docs/$TAG_NAME" git add "docs/$TAG_NAME" if git diff --staged --quiet; then From 906fe1b3d7b340a4baf071e65edd330d20ed8757 Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Tue, 6 Jan 2026 13:19:58 -0800 Subject: [PATCH 4/6] update ManualJavadocsDeploy.sh 3 --- tools/ManualJavadocsDeploy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ManualJavadocsDeploy.sh b/tools/ManualJavadocsDeploy.sh index 683088f56..844efb88c 100755 --- a/tools/ManualJavadocsDeploy.sh +++ b/tools/ManualJavadocsDeploy.sh @@ -11,7 +11,7 @@ echo "ECHO: git fetch origin gh-pages" git fetch origin gh-pages echo "ECHO: Create worktree" -git worktree add ./gh-pages-dir origin/gh-pages +git worktree add -B gh-pages ./gh-pages-dir origin/gh-pages EXIT_CODE=0 ( set -e From 2602f2e334a21abcd9bffdb65e7f487dea195a8e Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Tue, 6 Jan 2026 14:12:27 -0800 Subject: [PATCH 5/6] update javadoc.yml and ManualJavadocsDeploy.sh --- .github/workflows/javadoc.yml | 28 ++++++++++++++++++---------- tools/ManualJavadocsDeploy.sh | 15 +++++++++++---- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/.github/workflows/javadoc.yml b/.github/workflows/javadoc.yml index eb68e1619..e7c8d1ad4 100644 --- a/.github/workflows/javadoc.yml +++ b/.github/workflows/javadoc.yml @@ -34,12 +34,14 @@ jobs: cache: 'maven' - name: Build and Generate Javadoc # POM is configured to output to target/site/apidocs - run: mvn javadoc:javadoc + run: mvn clean javadoc:javadoc - name: Deploy Javadoc via Worktree env: TAG_NAME: ${{ github.event.inputs.tag_ref }} run: | + if [ -z "$TAG_NAME" ]; then echo "ERROR: No tag specified"; exit 1; fi + # 1. Initialize error tracking EXIT_CODE=0 @@ -48,37 +50,42 @@ jobs: git config user.name "github-actions[bot]" # 3. Ensure gh-pages exists and is fetched - echo "git fetch origin gh-pages" + echo "ECHO: git fetch origin gh-pages" git fetch origin gh-pages # 4. Create worktree for the gh-pages branch in a separate folder - echo "git worktree add ./gh-pages-dir origin/gh-pages" - git worktree add ./gh-pages-dir origin/gh-pages + echo "ECHO: git worktree add -B gh-pages ./gh-pages-dir origin/gh-pages" + git worktree add -B gh-pages ./gh-pages-dir origin/gh-pages # 5. Deployment Logic in a subshell to capture exit code ( set -e TARGET_PATH="gh-pages-dir/docs/$TAG_NAME" mkdir -p "$TARGET_PATH" - echo "cp -a target/site/apidocs/. $TARGET_PATH/" + + echo "ECHO: cp -a target/site/apidocs/. $TARGET_PATH/" cp -a target/site/apidocs/. "$TARGET_PATH/" cd gh-pages-dir + + echo "ECHO: git pull origin gh-pages --rebase" + git pull origin gh-pages --rebase + echo "git add docs/$TAG_NAME" git add "docs/$TAG_NAME" if git diff --staged --quiet; then echo "No changes detected for Javadoc $TAG_NAME." else - echo "Changes detected for Javadoc $TAG_NAME." - echo "git commit ..." + echo "ECHO: Changes detected for Javadoc $TAG_NAME." + echo "ECHO: git commit ..." git commit -m "Manual Javadoc deployment for tag $TAG_NAME" - echo "git push origin gh-pages" + echo "ECHO: git push origin gh-pages" git push origin gh-pages fi ) || EXIT_CODE=$? # 6. Cleanup (Always runs) - echo "Cleaning up worktree..." + echo "ECHO: Cleaning up worktree..." git worktree remove --force ./gh-pages-dir || true # 7. Final exit based on subshell success @@ -86,4 +93,5 @@ jobs: - name: Confirm Deployment if: success() - run: echo "Javadoc for ${{ github.event.inputs.tag_ref }} is now live on gh-pages." + run: echo "ECHO: Javadoc for ${{ github.event.inputs.tag_ref }} is now live on gh-pages." + diff --git a/tools/ManualJavadocsDeploy.sh b/tools/ManualJavadocsDeploy.sh index 844efb88c..78637ee02 100755 --- a/tools/ManualJavadocsDeploy.sh +++ b/tools/ManualJavadocsDeploy.sh @@ -19,8 +19,10 @@ EXIT_CODE=0 mkdir -p "$TARGET_PATH" cp -a target/site/apidocs/. "$TARGET_PATH/" cd gh-pages-dir + echo "ECHO: git pull origin gh-pages --rebase" git pull origin gh-pages --rebase + echo "ECHO: git add docs/$TAG_NAME" git add "docs/$TAG_NAME" @@ -41,7 +43,12 @@ EXIT_CODE=0 echo "ECHO: Cleaning up worktree..." git worktree remove --force ./gh-pages-dir || true -# Final exit based on subshell success -exit $EXIT_CODE -if: success() -run: echo "ECHO: Javadoc for $TAG_NAME is now live on gh-pages." \ No newline at end of file +# Check the exit code and report success or failure +if [ $EXIT_CODE -eq 0 ]; then + echo "ECHO: Javadoc for $TAG_NAME is now live on gh-pages." +else + echo "ECHO: Javadoc deployment failed for $TAG_NAME." +fi + +# Final exit +exit $EXIT_CODE \ No newline at end of file From ecb1c27924c7578fccb159f6c864cf82abbf98aa Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Tue, 6 Jan 2026 16:25:00 -0800 Subject: [PATCH 6/6] Add pipe to last run command. The github parser gets confused. --- .github/workflows/javadoc.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/javadoc.yml b/.github/workflows/javadoc.yml index e7c8d1ad4..070543273 100644 --- a/.github/workflows/javadoc.yml +++ b/.github/workflows/javadoc.yml @@ -93,5 +93,6 @@ jobs: - name: Confirm Deployment if: success() - run: echo "ECHO: Javadoc for ${{ github.event.inputs.tag_ref }} is now live on gh-pages." + run: | + echo "ECHO: Javadoc for ${{ github.event.inputs.tag_ref }} is now live on gh-pages."