name: Generate Doxygen Documentation on: push: branches: [ master ] workflow_dispatch: permissions: contents: write pages: write id-token: write jobs: generate-docs: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Doxygen and Graphviz run: | sudo apt-get update sudo apt-get install -y doxygen graphviz - name: Clone Doxygen Awesome Theme run: | git clone https://github.com/jothepro/doxygen-awesome-css.git doxygen-awesome - name: Create Doxyfile run: | doxygen -g Doxyfile # Customize Doxyfile settings sed -i 's/PROJECT_NAME = "My Project"/PROJECT_NAME = "fbgl"/g' Doxyfile sed -i 's/PROJECT_NUMBER =/PROJECT_NUMBER = 0.1.0/g' Doxyfile sed -i 's/OUTPUT_DIRECTORY =/OUTPUT_DIRECTORY = docs/g' Doxyfile sed -i 's/INPUT =/INPUT = fbgl.h README.md/g' Doxyfile sed -i 's/HTML_OUTPUT = html/HTML_OUTPUT = ./public/docs/html/g' Doxyfile # Set homepage to README.md echo "USE_MDFILE_AS_MAINPAGE = README.md" >> Doxyfile # Configure Doxygen Awesome theme echo "HTML_EXTRA_STYLESHEET = doxygen-awesome/doxygen-awesome.css" >> Doxyfile echo "HTML_COLORSTYLE = LIGHT" >> Doxyfile - name: Generate Documentation run: doxygen Doxyfile - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_branch: gh-pages publish_dir: ./public/docs/html force_orphan: true