60 lines
1.8 KiB
YAML
60 lines
1.8 KiB
YAML
name: Generate openapi.json
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
TITLE: royalroad
|
|
OUTPUT: service-royalroad-chapters-openapi.json
|
|
DOCS_BRANCH_BASE: main
|
|
|
|
jobs:
|
|
generate-docs:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Generate openapi.json
|
|
shell: bash
|
|
run: |
|
|
pip install -r requirements.txt
|
|
python scripts/dump_openapi.py --out "${{ env.OUTPUT }}" --title "${{ env.TITLE }}"
|
|
|
|
- name: Clone openapi-gateway-docs repo
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: ${{ github.repository_owner }}/openapi-gateway-docs
|
|
path: ./openapi-gateway-docs
|
|
ref: ${{ env.DOCS_BRANCH_BASE }}
|
|
token: ${{ secrets.BOT_TOKEN }}
|
|
|
|
- name: Move generated openapi.json
|
|
run: |
|
|
mkdir -p openapi-gateway-docs/sources
|
|
mv "${{ env.OUTPUT }}" "openapi-gateway-docs/sources/${{ env.OUTPUT }}"
|
|
|
|
- name: Generate markdown
|
|
working-directory: ./openapi-gateway-docs
|
|
run: python gen_docs.py
|
|
|
|
- name: Update openapi-gateway-docs
|
|
working-directory: ./openapi-gateway-docs
|
|
run: |
|
|
git config user.name "automation-bot"
|
|
git config user.email "dev@gansejunge.com"
|
|
|
|
git add sources API-*.md
|
|
if git diff --cached --quiet; then
|
|
echo "No documentation changes to commit"
|
|
exit 0
|
|
fi
|
|
|
|
COMMIT_URL="https://git.gansejunge.com/${GITHUB_REPOSITORY}/commit/${GITHUB_SHA}"
|
|
git commit -m "Updated docs for ${GITHUB_REPOSITORY}" -m "Linked build commit: $COMMIT_URL"
|
|
git pull --rebase origin "$DOCS_BRANCH_BASE"
|
|
git push origin "HEAD:$DOCS_BRANCH_BASE" |