Skip to content

📚 Documentation #562

📚 Documentation

📚 Documentation #562

Workflow file for this run

name: "📚 Documentation"
on:
push:
branches:
- main
paths:
- ".github/workflows/documentation.yml"
- "docs/**/*"
- "qgis_deployment_toolbelt/**/*.py"
- requirements/documentation.txt
tags:
- "*"
pull_request:
branches:
- main
paths:
- ".github/workflows/documentation.yml"
- docs/**/*
- requirements/documentation.txt
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow one concurrent deployment
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
PYTHON_VERSION: "3.11"
jobs:
build-docs:
runs-on: ubuntu-22.04
steps:
- name: Get source code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
cache: "pip"
cache-dependency-path: "requirements/*.txt"
- name: Install project requirements
run: |
python -m pip install -U pip setuptools wheel
python -m pip install -U -r requirements.txt
- name: Install project as a package
run: python -m pip install -e .
# this job must run before installing other dependencies to avoid listing everything
- name: Generates dependencies graph page with pipdetree
run: |
python -m pip install -U "pipdeptree<3"
echo -e "\`\`\`{mermaid}" > docs/misc/dependencies.md
pipdeptree --exclude pip,pipdeptree,setuptools,wheel --mermaid >> docs/misc/dependencies.md
echo -e "\`\`\`" >> docs/misc/dependencies.md
# this job must run before installing other dependencies to avoid listing everything
- name: Generates licenses page with pip-licences
run: |
python -m pip install -U "pip-licenses<5"
pip-licenses --format=markdown --with-authors --with-description --with-urls --ignore-packages qgis-deployment-toolbelt --output-file=docs/misc/licenses.md
- name: Install documentation requirements
run: |
python -m pip install -U -r requirements/development.txt
python -m pip install -U -r requirements/documentation.txt
- name: Build doc using Sphinx
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # required to avoid GH API rate limit
run: sphinx-build -b html -j auto -d docs/_build/cache -q docs docs/_build/html
- name: Save build doc as artifact
uses: actions/upload-artifact@v4
with:
name: documentation
path: docs/_build/html/*
if-no-files-found: error
retention-days: 30
- name: Setup Pages
uses: actions/configure-pages@v5
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main')
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main')
with:
# Upload entire repository
path: docs/_build/html/
- name: Deploy to GitHub Pages
id: deployment
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main')
uses: actions/deploy-pages@v4