Skip to content

Commit 7e91b8c

Browse files
committed
Add GitHub Action to publish documentation
1 parent 880513b commit 7e91b8c

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Documentation Upload
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
releaseVersion:
7+
description: "Release version"
8+
required: true
9+
10+
jobs:
11+
build:
12+
runs-on: ubuntu-latest
13+
steps:
14+
15+
- name: Capture release version
16+
run: echo RELEASE_VERSION=${{ github.event.inputs.releaseVersion }} >> $GITHUB_ENV
17+
18+
- name: Checkout source code
19+
uses: actions/[email protected]
20+
21+
- name: Set up JDK 17
22+
uses: actions/[email protected]
23+
with:
24+
java-version: '17'
25+
distribution: 'temurin'
26+
cache: 'maven'
27+
28+
- name: Capture project version
29+
run: echo PROJECT_VERSION=$(./mvnw help:evaluate -Dexpression=project.version --quiet -DforceStdout) >> $GITHUB_ENV
30+
31+
- name: Update release version
32+
run: |
33+
./mvnw versions:set -DgenerateBackupPoms=false -DnewVersion=$RELEASE_VERSION
34+
sed -i "s/version: 4.0.0-SNAPSHOT/version: 4.0.0-M1/" spring-shell-docs/antora.yml
35+
36+
- name: Generate Java docs
37+
run: ./mvnw --no-transfer-progress javadoc:aggregate
38+
39+
- name: Generate Reference docs
40+
working-directory: spring-shell-docs
41+
run: ../mvnw --no-transfer-progress resources:resources antora
42+
43+
- name: Setup SSH key
44+
env:
45+
DOCS_SSH_KEY: ${{ secrets.DOCS_SSH_KEY }}
46+
DOCS_SSH_HOST_KEY: ${{ secrets.DOCS_SSH_HOST_KEY }}
47+
run: |
48+
mkdir "$HOME/.ssh"
49+
echo "$DOCS_SSH_KEY" > "$HOME/.ssh/key"
50+
chmod 600 "$HOME/.ssh/key"
51+
echo "$DOCS_SSH_HOST_KEY" > "$HOME/.ssh/known_hosts"
52+
53+
- name: Deploy docs
54+
env:
55+
DOCS_HOST: ${{ secrets.DOCS_HOST }}
56+
DOCS_USERNAME: ${{ secrets.DOCS_USERNAME }}
57+
DOCS_PATH: /opt/www/domains/spring.io/docs/htdocs/spring-shell
58+
run: |
59+
ssh -i $HOME/.ssh/key $DOCS_USERNAME@$DOCS_HOST "cd $DOCS_PATH/docs && mkdir -p $RELEASE_VERSION"
60+
scp -i $HOME/.ssh/key -r target/reports/apidocs $DOCS_USERNAME@$DOCS_HOST:$DOCS_PATH/docs/$RELEASE_VERSION/api
61+
62+
ssh -i $HOME/.ssh/key $DOCS_USERNAME@$DOCS_HOST "cd $DOCS_PATH/reference && mkdir -p $RELEASE_VERSION"
63+
scp -i $HOME/.ssh/key -r spring-shell-docs/target/site/shell/$RELEASE_VERSION $DOCS_USERNAME@$DOCS_HOST:$DOCS_PATH/reference/$RELEASE_VERSION
64+
65+
- name: Bust Cloudflare Cache
66+
uses: spring-io/spring-doc-actions/[email protected]
67+
with:
68+
context-root: spring-shell
69+
cloudflare-zone-id: ${{ secrets.CLOUDFLARE_ZONE_ID }}
70+
cloudflare-cache-token: ${{ secrets.CLOUDFLARE_CACHE_TOKEN }}

0 commit comments

Comments
 (0)