name: Deploy Docs to Cloudflare Pages
on:
push:
branches: [main]
paths: ['docs_site/**']
workflow_dispatch:
permissions:
contents: read
jobs:
deploy:
name: Build & Deploy Docs
runs-on: ubuntu-latest
# Requires repo secret CLOUDFLARE_API_TOKEN (token with Pages:Edit permission)
# and CLOUDFLARE_ACCOUNT_ID. Set both in Settings β Secrets β Actions.
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: docs_site/package-lock.json
- name: Install dependencies
working-directory: docs_site
run: npm ci
- name: Build
working-directory: docs_site
run: npm run build
- name: Deploy to Cloudflare Pages
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
wranglerVersion: 4.120.0
command: pages deploy docs_site/dist --project-name=justapi-docs --branch=main