name: Dev Docs on: [push, pull_request, workflow_dispatch] concurrency: group: ${{ github.ref }} cancel-in-progress: true jobs: check: name: Check docs runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 - name: Install latest uv uses: astral-sh/setup-uv@v6 with: version: "latest" - name: Install dependencies run: uv sync --group docs --all-extras - name: Install lldb run: | # https://pwndbg.re/pwndbg/dev/contributing/setup-pwndbg-dev/#running-with-lldb sudo apt update sudo apt install -y gdb lldb-19 liblldb-19-dev echo "/usr/lib/llvm-19/bin/" >> $GITHUB_PATH echo "/usr/lib/llvm-19/bin/lldb-server" >> $GITHUB_PATH - name: Verify docs are up to date with source run: | ./scripts/verify-docs.sh - name: Update docs/index.md with README.md # This can be a simple copy if https://github.com/github/markup/issues/994 # is solved. run: ./scripts/generate-readme.sh - name: Build site run: | # --only-group doesn't work with api-autonav (why?) uv run --group docs mkdocs build --strict deploy: if: github.event_name == 'push' && contains(fromJson('["refs/heads/dev"]'), github.ref) needs: check name: Deploy dev docs runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 - name: Install latest uv uses: astral-sh/setup-uv@v6 with: version: "latest" - name: Install dependencies run: uv sync --group docs - name: Update docs/index.md with README.md run: ./scripts/generate-readme.sh - name: Deploy site run: | # mike pushes commits to the gh-pages branch git config --global user.email "doc-bot@pwndbg.re" git config --global user.name "DocBot" git fetch --no-tags --prune --depth=1 origin +refs/heads/gh-pages:refs/remotes/origin/gh-pages uv run --group docs mike deploy \ --update-aliases \ --push \ --remote origin \ dev