Skip to content

doc: Added doxygen support #43

doc: Added doxygen support

doc: Added doxygen support #43

name: documentation
on: [push, pull_request, workflow_dispatch]
permissions:
contents: write
jobs:
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-python@v3
- name: Install dependencies
run: |
python -m pip install sphinx-toolbox
pip install sphinx sphinx_rtd_theme myst_parser
sudo apt-get install doxygen graphviz -y
- name: Sphinx build
run: |
pushd doc/sphinx
sphinx-build ./ ./build
popd
- name: Doxygen build
run: |
pushd doc/doxygen
# doxygen Doxyfile
(cd build && ! make -j${NUM_JOBS} doc 2>&1 | grep -E "warning:|error:") || {
echo "Documentation incomplete or errors in the generation of it have occured!"
exit 1
}
popd
echo "Documentation was generated successfully!"
- name: Update gh pages
run: |
git config --global user.email "[email protected]"
git config --global user.name "CSE-CI"
MASTER_COMMIT=$(git rev-parse --short HEAD)
REPO_SLUG="${REPO_SLUG:-analogdevicesinc/precision-converters-firmware}"
git fetch --depth 1 origin +refs/heads/gh-pages:gh-pages
rm -rf doc/
git checkout gh-pages
# Clear previous content in the root folder except the doc path which holds new builds
find -mindepth 1 -maxdepth 1 ! \( -name "doc" -o -name ".git" \) -exec rm -r {} \;
# Create doxygen folder holding new build content
mkdir -p doxygen
cp -R doc/doxygen/html/* doxygen/
# Add sphinx build content to root folder
cp -R doc/sphinx/build/* ./
rm -rf doc/
# Create .nojekyll file
touch nojekyll
CURRENT_COMMIT=$(git log -1 --pretty=%B)
if [[ ${CURRENT_COMMIT:(-7)} != ${MASTER_COMMIT:0:7} ]]
then
git add --all .
git commit --allow-empty --amend -m "Update documentation to ${MASTER_COMMIT:0:7}"
if [ -n "$GITHUB_DOC_TOKEN" ] ; then
git push https://${GITHUB_DOC_TOKEN}@github.com/${REPO_SLUG} gh-pages -f
else
git push origin gh-pages -f
fi
# echo_green "Documetation updated!"
else
# echo_green "Documentation already up to date!"
fi
# - name: Deploy doxygen to GitHub Pages
# uses: DenverCoder1/[email protected]
# with:
# branch: gh-pages
# github_token: ${{ secrets.GITHUB_TOKEN }}
# folder: doxygen
# config_file: doc/doxygen/Doxyfile
# - name: Deploy sphinx to GitHub Pages
# uses: peaceiris/actions-gh-pages@v3
# with:
# publish_branch: gh-pages
# github_token: ${{ secrets.GITHUB_TOKEN }}
# publish_dir: _build/
# force_orphan: true