| # Copyright (c) Microsoft Corporation |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| # This action will run doxygen to update the documentation at https://iovisor.github.io/ubpf/ |
| # which is a view of the gh-pages branch. This action is done whenever the main branch is updated. |
| # For docs on gh-pages see https://pages.github.com/ |
| # |
| # The following two links discuss steps similar to this action so may be useful reading |
| # to understand how the automatic update works: |
| # https://growworkinghard.altervista.org/doxygen-documentation-on-github-using-gh-pages/ |
| # https://github.com/m-a-d-n-e-s-s/madness/issues/104 |
| |
| name: Doxygen Action |
| |
| # Controls when the action will run. Triggers the workflow on push # events |
| # but only for the main branch |
| on: |
| push: |
| branches: [ main ] |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| build: |
| permissions: |
| contents: write # for Git to git push |
| runs-on: ubuntu-latest |
| |
| steps: |
| |
| - name: Harden Runner |
| uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 |
| with: |
| egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs |
| |
| - name: Install doxygen |
| run: | |
| sudo apt install doxygen |
| |
| - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 |
| |
| - name: Clone docs |
| run: | |
| git config --global user.email 'ubpf@users.noreply.github.com' |
| git config --global user.name 'Github Action' |
| git clone --branch gh-pages https://github.com/${{github.repository}}.git docs/html |
| |
| - name: Update docs |
| run: | |
| doxygen |
| cd docs/html |
| git add . |
| if [ -n "$(git status --porcelain)" ]; then |
| git commit -s -m "Updated documentation" |
| git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{github.repository}}.git |
| git push |
| fi |