name: Docs Site
on:
push:
branches: [main]
paths:
- 'docs/website/**'
- '.github/workflows/docs-site.yml'
workflow_dispatch:
env:
NODE_VERSION: 22
permissions:
contents: read
jobs:
build-and-deploy:
name: Build and Deploy Docs Site
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs/website
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
cache-dependency-path: docs/website/.tools/package-lock.json
- name: Install dependencies
run: npm ci --prefix .tools
- name: Build directory indexes
run: npm --prefix .tools run build:index
- name: Build search index
run: npm --prefix .tools run build:search
- name: Build Cloudflare bundle
run: npm --prefix .tools run build:cloudflare
- name: Upload docs artifact
uses: actions/upload-artifact@v4
with:
name: docs-site-cloudflare
path: docs/website/dist/cloudflare
- name: Deploy to Cloudflare Workers
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
run: npm --prefix .tools run deploy