Skip to content
name: Build and Publish Documentation (Pushes)
on:
push:
branches: [main]
release:
types: [published]
workflow_dispatch:
jobs:
build-and-deploy-docs:
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install doxygen graphviz texlive-full pandoc
pip install -r doc/requirements.txt
- name: Build Documentation
run: |
cd doc
# ignore if the following command fails
build-docs -t esp32 -l en --project-path ../ --source-dir ./ --doxyfile_dir ./ || true
mkdir -p ../docs
cp -r _build/en/esp32/html/* ../docs/.
# go to the latex output
cd _build/en/esp32/latex/
# build once (ignore if command fails)
pdflatex -interaction=batchmode refman || true
# build again to make sure page numbers and refs and such work (ignore if command fails)
pdflatex -interaction=batchmode refman || true
# rename refman to espp_documentation.pdf
mv refman.pdf espp_documentation.pdf
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs
force_orphan: true
- uses: actions/upload-artifact@v4
with:
name: espp_documentation.pdf
path: doc/_build/en/esp32/latex/espp_documentation.pdf
- name: Attach files to release
uses: softprops/action-gh-release@v2
if: ${{ github.event.release && github.event.action == 'published' }}
with:
files: |
doc/_build/en/esp32/latex/espp_documentation.pdf