name: Validate committed public docs on: push: branches: [main] paths-ignore: - "docs/generated/**" - "docs/diagrams/**" - "docs/public/**" - "site/**" pull_request: branches: [main] paths-ignore: - "docs/generated/**" - "docs/diagrams/**" - "docs/public/**" - "site/**" workflow_dispatch: permissions: contents: read jobs: validate-public-docs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Ensure committed docs/public exists run: | test -d docs/public test -n "$(find docs/public -mindepth 1 -print -quit)" - name: Install Graphviz and MkDocs run: | sudo apt-get update sudo apt-get install -y graphviz dot -V python3 -m pip install --user mkdocs - name: Validate public docs and diagrams run: | test -f docs/public/physical-topology.svg test -f docs/public/docker-traefik-dynu.svg ! rg -n "Graphviz dot not found" docs/public/*.svg ! rg -n "lan\.ddnsgeek\.com" docs/public/*.svg docs/public/*.md ! rg -n -i "password|token|api_key|secret" docs/public/*.svg python3 -m mkdocs build -f mkdocs-public.yml --strict