name: docs
on:
pull_request:
paths:
- "docs/book/**"
- "src/cli/commands/**"
- ".github/workflows/docs.yml"
push:
branches: [main]
paths:
- "docs/book/**"
- "src/cli/commands/**"
- ".github/workflows/docs.yml"
permissions:
contents: read
jobs:
build-book:
name: mdbook build
runs-on: ubuntu-latest
timeout-minutes: 10
env:
MDBOOK_VERSION: v0.4.40
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
- name: Install mdbook (pinned prebuilt binary)
run: |
mkdir -p "$HOME/.local/bin"
curl --proto '=https' --tlsv1.2 -fsSL \
"https://github.com/rust-lang/mdBook/releases/download/${MDBOOK_VERSION}/mdbook-${MDBOOK_VERSION}-x86_64-unknown-linux-gnu.tar.gz" \
| tar -xz -C "$HOME/.local/bin"
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- name: Check SUMMARY.md entries resolve
run: |
missing=0
while IFS= read -r chapter; do
if [ ! -f "docs/book/src/${chapter}" ]; then
echo "::error::SUMMARY.md links missing chapter: src/${chapter}"
missing=1
fi
done < <(grep -o '(\./[^)]*\.md)' docs/book/src/SUMMARY.md | sed 's/^(\.\///; s/)$//')
exit "${missing}"
- name: Build book
run: mdbook build docs/book