Skip to content

Deploy Reference Documentation #36

Deploy Reference Documentation

Deploy Reference Documentation #36

name: Deploy Reference Documentation
on:
workflow_dispatch:
inputs:
ref:
description: 'Choose the branch/tag/ref to deploy the reference documentation from'
required: true
default: 'main'
type: string
permissions:
id-token: write
jobs:
deploy-reference-docs:
runs-on: ubuntu-latest
steps:
- name: Checkout "main" Branch
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}
- name: Setup Java 21
uses: actions/setup-java@v4
with:
distribution: 'corretto'
java-version: '21'
- name: Configure Git
run: |
git config --global user.email "oss@expediagroup.com"
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 -p older/${{ env.LATEST_DOCS_VERSION }}
mv images -- '-lodging -connectivity -java -s-d-k' 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 ${{ inputs.ref }} Branch
run: git checkout ${{ inputs.ref }}
- name: Generate New Release Reference Docs
run: |
# show all files in the current directory
pwd
ls -la
gradle -p code dokkaHtml -Pdokka-old-versions.location=${{ runner.temp }}/older -Pdokka-assets.location=${{ runner.temp }}/assets
- name: Extract and Store Newly Generated Docs Version Number
run: |
echo "NEW_DOCS_VERSION=$(jq -r '.version' code/build/dokka/html/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_Ngit remote get-url originAME" == "${{ 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/build/dokka/html ${{ 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 -- '-lodging -connectivity -java -s-d-k' scripts styles index.html navigation.html not-found-version.html version.json
- name: Move Newly Generated Docs to the Repository Root
run: |
rm -rf .gradle
ls -la
echo "------"
ls -la ${{ runner.temp }}/${{ env.NEW_DOCS_VERSION }}
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: publish docs for version ${{ env.NEW_DOCS_VERSION }}"
body: "This PR adds the reference documentation for version ${{ env.NEW_DOCS_VERSION }}."
title: "chore: publish docs for version ${{ env.NEW_DOCS_VERSION }}"
branch: "docs-update-${{ env.NEW_DOCS_VERSION }}"