Skip to content

Bump the all-github-actions group across 1 directory with 6 updates #600

Bump the all-github-actions group across 1 directory with 6 updates

Bump the all-github-actions group across 1 directory with 6 updates #600

name: Run Doxygen and publish to GitHub pages
# Generate the documentation on all merges to main, all pull requests, or by
# manual workflow dispatch. The Doxygen job can be used as a CI check that all
# functions are documented. The publish job only runs on new commits to the main
# branch and actually pushes the generated html to the gh-pages branch (which
# triggers a GitHub pages deployment). When things are a bit more stable, we can
# only publish the website on release tags.
on:
push:
branches:
- main
pull_request:
merge_group:
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
doxygen:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
submodules: "true"
- name: Install Doxygen
run: brew install doxygen graphviz
shell: bash
- name: Run Doxygen
run: doxygen doc/Doxyfile
shell: bash
# Disabling jekyll ensures pages with underscores work on gh pages.
- name: Create .nojekyll
run: touch html/.nojekyll
shell: bash
- name: Manually copy over assets
# Preserve the directory structure to keep README's image references!
run: |
mkdir -p html/doc/assets
cp -R doc/assets/*.png html/doc/assets
shell: bash
- name: Manually patch cookie.js
run: cp doc/js/cookie.js html/cookie.js
shell: bash
- name: Upload static files as artifact
uses: actions/upload-pages-artifact@v5
with:
path: html
publish:
if: github.ref == 'refs/heads/main' # only deploy from main
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: doxygen
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5