bobbin-ai 0.25.2

Local-first context injection engine for AI coding agents
name: Docs

on:
  pull_request:
    paths:
      - 'docs/**'
      - 'README.md'
      - 'scripts/check-md-links.py'
      - '.pre-commit-config.yaml'
      - 'CONTRIBUTING.md'
      - '.markdownlint-cli2.yaml'
      - '.vale.ini'
      - '.vale/**'
      - '.github/workflows/docs.yml'
  push:
    branches: [main]
    paths:
      - 'docs/**'
      - 'README.md'
      - 'scripts/check-md-links.py'
      - '.pre-commit-config.yaml'
      - 'CONTRIBUTING.md'
      - '.markdownlint-cli2.yaml'
      - '.vale.ini'
      - '.vale/**'
      - '.github/workflows/docs.yml'
  workflow_dispatch:

permissions:
  contents: read

jobs:
  lint:
    name: Markdown lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

      - name: Check published documentation links
        run: python3 scripts/check-md-links.py

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '22'

      - name: Run markdownlint
        run: npx markdownlint-cli2@0.23.2 "docs/book/src/**/*.md" "README.md" "CONTRIBUTING.md"

  vale:
    name: Style check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

      - name: Install Vale
        run: |
          wget -qO- https://github.com/errata-ai/vale/releases/download/v3.13.1/vale_3.13.1_Linux_64-bit.tar.gz | tar xz -C /usr/local/bin vale
          vale --version

      - name: Vale sync
        run: vale sync

      - name: Vale lint (errors only)
        run: vale --minAlertLevel error docs/book/src/

  build:
    name: Build docs
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

      - name: Install mdbook
        uses: taiki-e/install-action@v2
        with:
          tool: mdbook

      - name: Build book
        run: mdbook build docs/book

      - name: Upload artifact
        if: github.ref == 'refs/heads/main' && github.event_name == 'push'
        uses: actions/upload-pages-artifact@v3
        with:
          path: docs/book/book/html

  deploy:
    name: Deploy to GitHub Pages
    if: github.ref == 'refs/heads/main' && github.event_name == 'push'
    needs: [lint, vale, build]
    runs-on: ubuntu-latest
    permissions:
      pages: write
      id-token: write
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4