Skip to content

Deploy Website to Cloudflare Pages #53

Deploy Website to Cloudflare Pages

Deploy Website to Cloudflare Pages #53

name: Deploy Website to Cloudflare Pages
on:
push:
branches: [main]
paths:
- 'docs/**'
- '.github/workflows/deploy-website.yml'
workflow_dispatch:
concurrency:
group: deploy-website
cancel-in-progress: false
permissions:
contents: read
deployments: write
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 24
cache: npm
cache-dependency-path: docs/package-lock.json
- name: Install dependencies
run: npm ci
working-directory: docs
- name: Build
run: npm run docs:build
working-directory: docs
- name: Verify build output
run: |
if [ ! -d "docs/.vitepress/dist" ] || [ -z "$(ls -A docs/.vitepress/dist)" ]; then
echo "::error::Build output is empty or missing."
exit 1
fi
- name: Deploy to Cloudflare Pages
uses: cloudflare/wrangler-action@v4
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
preCommands: npx wrangler pages project create cora --production-branch=main || true
command: pages deploy docs/.vitepress/dist/ --project-name=cora