1- name : Deploy Website and Javadoc
1+ name : Deploy Website & Javadoc
22
33on :
44 push :
55 branches : [ "main" ]
6+ workflow_dispatch :
67
8+ # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
79permissions :
8- contents : write
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 : false
918
1019jobs :
1120 deploy :
21+ environment :
22+ name : github-pages
23+ url : ${{ steps.deployment.outputs.page_url }}
1224 runs-on : ubuntu-latest
1325 steps :
14- - name : Checkout Main
26+ - name : Checkout Code
1527 uses : actions/checkout@v4
16- with :
17- path : main
1828
1929 - name : Set up JDK 25
2030 uses : actions/setup-java@v4
@@ -24,22 +34,38 @@ jobs:
2434 cache : ' maven'
2535
2636 - name : Generate Javadoc
27- run : |
28- cd main
29- mvn javadoc:javadoc -P release -DskipTests -ntp
37+ # Use the release profile to include custom themes and footers
38+ run : mvn javadoc:javadoc -P release -DskipTests -ntp
3039
3140 - name : Prepare Deployment Folder
3241 run : |
33- mkdir deploy
34- # 1. Copy the website from the docs folder
35- cp -r main/docs/* deploy/
36- # 2. Copy the generated Javadocs to the /apidocs subfolder
37- mkdir -p deploy/apidocs
38- cp -r main/target/reports/apidocs/* deploy/apidocs/
42+ # Create a temporary deployment directory
43+ mkdir -p _site
44+
45+ # 1. Copy the static website from docs/
46+ if [ -d docs ]; then
47+ cp -r docs/* _site/
48+ fi
49+
50+ # 2. Create .nojekyll to prevent GitHub from processing the site
51+ touch _site/.nojekyll
52+
53+ # 3. Inject the generated Javadocs into the apidocs/ subfolder
54+ mkdir -p _site/apidocs
55+ cp -r target/reports/apidocs/* _site/apidocs/
56+
57+ # VERIFICATION: List the contents to the log
58+ echo "--- Deployment Folder Structure ---"
59+ ls -R _site
3960
40- - name : Deploy to GitHub Pages
41- uses : JamesIves/github-pages-deploy-action@v4
61+ - name : Setup Pages
62+ uses : actions/configure-pages@v5
63+
64+ - name : Upload artifact
65+ uses : actions/upload-pages-artifact@v3
4266 with :
43- branch : gh-pages
44- folder : deploy
45- clean : true
67+ path : ' ./_site'
68+
69+ - name : Deploy to GitHub Pages
70+ id : deployment
71+ uses : actions/deploy-pages@v4
0 commit comments