|
name: Documentation |
|
|
|
on: [push, pull_request] |
|
|
|
jobs: |
|
build: |
|
runs-on: ubuntu-latest |
|
steps: |
|
- uses: actions/checkout@v6 |
|
- name: Set up Python |
|
uses: astral-sh/setup-uv@v7 |
|
with: |
|
python-version: "3.12" |
|
cache-python: true |
|
activate-environment: true |
|
enable-cache: true |
|
|
|
- name: Doxygen Action |
|
uses: mattnotmitt/doxygen-action@1.12.0 |
|
with: |
|
working-directory: "doc/" |
|
|
|
- name: Synchronize the virtual environment |
|
run: uv sync --managed-python --no-dev --group doc |
|
|
|
- name: Build Sphinx documentation |
|
run: | |
|
uv run sphinx-build doc/source/ ./doc/build/html/ |
|
|
|
- name: Upload artifact |
|
# Automatically uploads an artifact from the './_site' directory by default |
|
uses: actions/upload-pages-artifact@v5 |
|
with: |
|
path: doc/build/html/ |
|
|
|
deploy: |
|
if: github.ref == 'refs/heads/master' |
|
runs-on: ubuntu-latest |
|
permissions: |
|
contents: read |
|
pages: write |
|
id-token: write |
|
environment: |
|
name: github-pages |
|
url: ${{ steps.deployment.outputs.page_url }} |
|
needs: build |
|
steps: |
|
- name: Deploy to GitHub Pages |
|
id: deployment |
|
uses: actions/deploy-pages@v5 |