name: Documentation permissions: read-all # Trigger for PR or merge to develop branch on: push: branches: develop paths: - 'docs/**' pull_request: paths: - 'docs/**' workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 with: python-version: '3.11' cache: 'pip' - name: Install Dependencies run: pip install -r docs/requirements.txt - name: Configure & Build run: | cmake -DCMAKE_VERBOSE_MAKEFILE=on -B build docs cmake --build build - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 with: name: docs path: build/Documentation/html publish: needs: build if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' && github.ref == 'refs/heads/develop' runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: ref: gh-pages path: gh-pages - name: Remove old site run: rm -rf gh-pages/* - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 with: name: docs path: gh-pages - name: Push to GitHub Pages run: | cd gh-pages touch .nojekyll git add . git config --global user.name "GitHub Actions" git config --global user.email github-actions@github.com git commit -m "Update documentation" git push --force origin gh-pages