Skip to content

Doxygen

Doxygen #145

Workflow file for this run

# This is a basic workflow make doxygen documentation every time develop is updated
name: Doxygen
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the develop branch
push:
branches: [ develop ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "Doxygen"
Doxygen:
# The type of runner that the job will run on
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
# Updates the package list to ensure you get the latest version of packages
- run: sudo apt-get update
# Installs texlive for LaTeX support in Doxygen documentation
- run: sudo apt-get install -y texlive
# Installs libjs-mathjax for rendering mathematical notation in Doxygen documentation
- run: sudo apt-get install -y libjs-mathjax
# Install perl for bibtex
- run: sudo apt-get install -y perl
# Runs a single command using the runners shell
- name: Doxygen Action
uses: mattnotmitt/doxygen-action@1.9.8
with:
doxyfile-path: './Doxyfile'
working-directory: ./Doc
- name: Upload Doxygen Artifact
uses: actions/upload-artifact@v4
with:
name: DoxygenHTML
path: Doc/html
Sphinx:
# The type of runner that the job will run on
runs-on: ubuntu-latest
needs: Doxygen
container:
image: ghcr.io/mach3-software/mach3:alma9latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Download Doxygen Artifact
uses: actions/download-artifact@master
with:
name: DoxygenHTML
## EM: In order to build the python documentation we first need to build the pyMaCh3 module
- name: Build pyMaCh3
run: pip install .
## EM: Now generate the sphinx documentation
- name: Sphinx Build
working-directory: Doc/sphinx
run: |
pip install -r requirements.txt
make
## EM: Move the generated sphinx docs into the final html folder
- name: Move Sphinx Docs
run: |
mkdir Doc/html/pyMaCh3
mv Doc/sphinx/* Doc/html/pyMaCh3/
Deploy:
runs-on: ubuntu-latest
needs: [Doxygen, Sphinx]
steps:
- uses: actions/upload-artifact@v4
with:
name: DocumentationHTML
path: Doc/html
# Deploys the generated documentation to GitHub Pages
#- name: Deploy
# uses: peaceiris/actions-gh-pages@v4
# with:
# github_token: ${{ secrets.GITHUB_TOKEN }}
# publish_dir: ./Doc/html