11name : Documentation Upload
2-
32on :
43 workflow_dispatch :
5- inputs :
6- releaseVersion :
7- description : " Release version"
8- required : true
94
105jobs :
11- build :
6+ handle-documentation :
7+ name : Generate and upload javadocs
8+ if : ${{ github.repository_owner == 'spring-projects' }}
129 runs-on : ubuntu-latest
1310 steps :
14-
15- - name : Capture release version
16- run : echo RELEASE_VERSION=${{ github.event.inputs.releaseVersion }} >> $GITHUB_ENV
17-
1811 - name : Checkout source code
1912 uses : actions/checkout@v4
2013
@@ -25,34 +18,23 @@ jobs:
2518 distribution : ' temurin'
2619 cache : ' maven'
2720
28- - name : Generate Java docs
29- run : ./mvnw --batch-mode -ntp clean install -DskipTests -Pjavadoc
21+ # NOT setting up maven build-cache b/c javadoc:aggregate-jar is forking lifecyle and can't benefit from it anyway
3022
31- - name : Aggregate Java docs
32- run : ./mvnw --batch-mode -ntp javadoc:aggregate
23+ - name : Generate Java docs
24+ run : ./mvnw --batch-mode -ntp javadoc:aggregate-jar
3325
34- - name : Generate assembly
35- working-directory : spring-ai-docs
36- run : ../mvnw --batch-mode -ntp assembly:single
26+ - name : Capture project version
27+ run : echo PROJECT_VERSION=$(./mvnw help:evaluate -Dexpression=project.version --quiet -DforceStdout) >> $GITHUB_ENV
3728
3829 - name : Setup SSH key
39- env :
40- DOCS_SSH_KEY : ${{ secrets.DOCS_SSH_KEY }}
41- DOCS_SSH_HOST_KEY : ${{ secrets.DOCS_SSH_HOST_KEY }}
4230 run : |
4331 mkdir "$HOME/.ssh"
44- echo "$DOCS_SSH_KEY" > "$HOME/.ssh/key"
32+ echo "${{ secrets. DOCS_SSH_KEY }} " > "$HOME/.ssh/key"
4533 chmod 600 "$HOME/.ssh/key"
46- echo "$DOCS_SSH_HOST_KEY" > "$HOME/.ssh/known_hosts"
34+ echo "${{ secrets. DOCS_SSH_HOST_KEY }} " > "$HOME/.ssh/known_hosts"
4735
4836 - name : Deploy docs
49- env :
50- DOCS_HOST : ${{ secrets.DOCS_HOST }}
51- DOCS_PATH : ${{ secrets.DOCS_PATH }}
52- DOCS_USERNAME : ${{ secrets.DOCS_USERNAME }}
53- working-directory : spring-ai-docs/target
5437 run : |
55- unzip spring-ai-$RELEASE_VERSION-docs.zip
56- ssh -i $HOME/.ssh/key $DOCS_USERNAME@$DOCS_HOST "cd $DOCS_PATH && mkdir -p $RELEASE_VERSION"
57- scp -i $HOME/.ssh/key -r api $DOCS_USERNAME@$DOCS_HOST:$DOCS_PATH/$RELEASE_VERSION
58-
38+ ssh -i $HOME/.ssh/key ${{ secrets.DOCS_USERNAME }}@${{ secrets.DOCS_HOST }} "cd ${{ secrets.DOCS_PATH }} && rm -fr $PROJECT_VERSION && mkdir -p $PROJECT_VERSION"
39+ scp -i $HOME/.ssh/key target/spring-ai-parent-${PROJECT_VERSION}-javadoc.jar ${{ secrets.DOCS_USERNAME }}@${{ secrets.DOCS_HOST }}:${{ secrets.DOCS_PATH }}/$PROJECT_VERSION
40+ ssh -i $HOME/.ssh/key ${{ secrets.DOCS_USERNAME }}@${{ secrets.DOCS_HOST }} "cd ${{ secrets.DOCS_PATH }}/${PROJECT_VERSION} && unzip spring-ai-parent-${PROJECT_VERSION}-javadoc.jar -d api && rm spring-ai-parent-${PROJECT_VERSION}-javadoc.jar"
0 commit comments