Skip to content

Deploy Reference Documentation #168

Deploy Reference Documentation

Deploy Reference Documentation #168

name: Deploy Reference Documentation
on:
workflow_dispatch:
permissions:
id-token: write
jobs:
deploy-reference-docs:
runs-on: ubuntu-latest
steps:
- name: Checkout "main" Branch
uses: actions/checkout@v4
with:
ref: main
- name: Setup Java 21
uses: actions/setup-java@v4
with:
distribution: 'corretto'
java-version: '21'
- name: Configure Git
run: |
git config --global user.email "[email protected]"
git config --global user.name "eg-oss-ci"
git fetch --all
- name: Checkout "gh-pages" Branch
run: git checkout gh-pages
- name: Extract and Store Latest Live Docs Version Number
run: echo "LATEST_DOCS_VERSION=$(jq -r '.version' version.json)" >> $GITHUB_ENV
- name: Move Latest Docs to the "older" Directory (Archiving latest live release)
run: |
mkdir older/${{ env.LATEST_DOCS_VERSION }}
mv images rapid-sdk scripts styles index.html navigation.html not-found-version.html version.json older/${{ env.LATEST_DOCS_VERSION }}
- name: Move the "older" and "assets" Directories to a Temporary Workspace
run: mv older assets ${{ runner.temp }}
- name: Checkout "main" Branch
run: git checkout main
- name: Generate New Release Reference Docs
run: mvn -f code dokka:dokka -Ddokka-old-versions.location=${{ runner.temp }}/older -Ddokka-assets.location=${{ runner.temp }}/assets
- name: Extract and Store Newly Generated Docs Version Number
run: echo "NEW_DOCS_VERSION=$(jq -r '.version' code/target/dokka/version.json)" >> $GITHUB_ENV
- name: Check the New Release Version
run: |
for dir in ${{ runner.temp }}/older/*; do
if [ -d "$dir" ]; then
DIR_NAME=$(basename "$dir")
if [ "$DIR_NAME" == "${{ env.NEW_DOCS_VERSION }}" ]; then
echo "Error: Reference Docs with version ${{env.NEW_DOCS_VERSION }} already exists."
echo "Hint: Make sure to update the project version in the pom.xml file"
exit 1
fi
fi
done
- name: Move the Newly Generated Docs to a Temporary Workspace
run: mv code/target/dokka ${{ runner.temp }}/${{ env.NEW_DOCS_VERSION }}
- name: Checkout "gh-pages" Branch
run: git checkout gh-pages
- name: Cleanup Old Docs from the Repository's Root
run: rm -rf code images older rapid-sdk scripts styles index.html navigation.html not-found-version.html version.json
- name: Move Newly Generated Docs to the Repository Root
run: mv ${{ runner.temp }}/${{ env.NEW_DOCS_VERSION }}/* .
- name: Commit the New Release
run: |
git add .
git commit -m "chore: publishing docs for version ${{ env.NEW_DOCS_VERSION }}"
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
commit-message: "chore: publishing docs for version ${{ env.NEW_DOCS_VERSION }}"
body: "This PR adds the reference documentation for version ${{ env.NEW_DOCS_VERSION }}."
title: "chore: reference docs update for version ${{ env.NEW_DOCS_VERSION }}"
branch: "docs-update-${{ env.NEW_DOCS_VERSION }}"