Skip to content

Embedded UML

Embedded UML #202

Workflow file for this run

# Inspired by https://github.com/rkdarst/sphinx-actions-test/blob/master/.github/workflows/sphinx-build.yml
name: Generate documentation
on:
push:
branches:
- master
tags:
- v*
pull_request:
branches:
- master
workflow_dispatch:
branches:
- master
jobs:
build-and-deploy:
name: Build and deploy to gh-pages
runs-on: ubuntu-latest
steps:
#
# Preparation
#
- name: Check out source
uses: actions/checkout@v3
with:
path: stylist
fetch-depth: 1
- name: Checkout pages
uses: actions/checkout@v3
with:
ref: gh-pages
fetch-depth: 1
path: gh-pages
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: 3.11
- name: Cache pip
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-
- name: Install system dependencies
run: apt-get install plantuml
- name: Install Python dependencies
run: |
cd stylist
python -m pip install --upgrade pip
pip install .[docs]
- name: Debugging information
if: ${{ false }}
run: |
echo "github.ref:" ${{github.ref}}
echo "github.event_name:" ${{github.event_name}}
echo "github.head_ref:" ${{github.head_ref}}
echo "github.base_ref:" ${{github.base_ref}}
set -x
cd stylist
git rev-parse --abbrev-ref HEAD
git branch
git branch -a
git remote -v
python -V
pip list --not-required
pip list
#
# Documentation
#
- name: Build Sphinx docs
run: |
cd stylist/documentation
make html
#
# Publish
#
- name: Copy new documentation
if: github.event_name == 'push' && !startsWith(github.ref_name, 'v')
run: |
set -x
git -C gh-pages rm -r latest
rsync -a stylist/documentation/build/html/ gh-pages/latest/
git -C gh-pages add latest
- name: Copy release documentation
if: github.event_name == 'push' && startsWith(github.ref_name, 'v')
run: |
set -x
rsync -a stylist/documentation/build/html/ gh-pages/${{github.ref_name}}
git -C gh-pages add ${{github.ref_name}}
stylist/.github/bin/update-index gh-pages/index.html ${{github.ref_name}}
git -C gh-pages add index.html
- name: Commit documentation
if: github.event_name == 'push'
run: |
set -x
git_changes=$(git -C gh-pages status --porcelain)
if [ "$git_changes" ]; then
git_hash=$(git -C stylist rev-parse --short "${{ github.sha }}")
git -C gh-pages -c "user.name=Sphinx Workflow" -c [email protected] commit -a -m "Documentation from $git_hash"
fi
- name: Push
if: github.event_name == 'push'
run: |
set -x
git -C gh-pages push