diff --git a/.github/workflows/documentation-upload-build.yml b/.github/workflows/documentation-upload-build.yml new file mode 100644 index 000000000..9923ed258 --- /dev/null +++ b/.github/workflows/documentation-upload-build.yml @@ -0,0 +1,56 @@ +name: Documentation Upload + +on: + workflow_dispatch: + inputs: + releaseVersion: + description: "Release version" + required: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + + - name: Capture release version + run: echo RELEASE_VERSION=${{ github.event.inputs.releaseVersion }} >> $GITHUB_ENV + + - name: Checkout source code + uses: actions/checkout@v3 + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + cache: 'maven' + + - name: Generate Java docs + run: mvn javadoc:aggregate + + - name: Generate Reference docs + working-directory: spring-batch-docs + run: mvn site + + - name: Setup SSH key + env: + DOCS_SSH_KEY: ${{ secrets.DOCS_SSH_KEY }} + DOCS_SSH_HOST_KEY: ${{ secrets.DOCS_SSH_HOST_KEY }} + run: | + mkdir "$HOME/.ssh" + echo "$DOCS_SSH_KEY" > "$HOME/.ssh/key" + chmod 600 "$HOME/.ssh/key" + echo "$DOCS_SSH_HOST_KEY" > "$HOME/.ssh/known_hosts" + + - name: Deploy docs + env: + DOCS_HOST: ${{ secrets.DOCS_HOST }} + DOCS_PATH: ${{ secrets.DOCS_PATH }} + DOCS_USERNAME: ${{ secrets.DOCS_USERNAME }} + working-directory: spring-batch-docs/target + run: | + unzip spring-batch-$RELEASE_VERSION-docs.zip + ssh -i $HOME/.ssh/key $DOCS_USERNAME@$DOCS_HOST mkdir $DOCS_PATH/$RELEASE_VERSION + scp -i $HOME/.ssh/key -r api $DOCS_USERNAME@$DOCS_HOST:$DOCS_PATH/$RELEASE_VERSION + scp -i $HOME/.ssh/key -r reference $DOCS_USERNAME@$DOCS_HOST:$DOCS_PATH/$RELEASE_VERSION + ssh -i $HOME/.ssh/key $DOCS_USERNAME@$DOCS_HOST rm current && ln -s $RELEASE_VERSION current