#!/usr/bin/env bash # deploy-site.sh — 部署构建好的 Astro 官网 (web/website/dist/) 到 Cloudflare Pages。 # # 官网托管在 CF Pages(项目 pangolin-site,自定义域 pangolin.yanmeiai.com),纯静态、 # 全程 HTTPS、CSP(_headers)自动生效,不落在 VPS 上 —— 故与节点 :443(sing-box)无冲突。 # # 需环境变量: # CLOUDFLARE_API_TOKEN 带 Account > Cloudflare Pages > Edit 权限的 CF token # CLOUDFLARE_ACCOUNT_ID CF 账户 ID # 由 compile-site.sh 先产出 web/website/dist/;从 repo 根调用。 set -euo pipefail if [ ! -d web/website/dist ]; then echo "==> deploy-site: web/website/dist/ 不存在 — 拒绝部署" >&2 exit 1 fi if ! find web/website/dist -mindepth 1 -print -quit | grep -q .; then echo "==> deploy-site: web/website/dist/ 为空 — 拒绝部署" >&2 exit 1 fi : "${CLOUDFLARE_API_TOKEN:?deploy-site: CLOUDFLARE_API_TOKEN 未设(需带 Pages:Edit)}" : "${CLOUDFLARE_ACCOUNT_ID:?deploy-site: CLOUDFLARE_ACCOUNT_ID 未设}" echo "==> deploy-site: wrangler pages deploy → project pangolin-site (branch main)" npx --yes wrangler@4 pages deploy web/website/dist \ --project-name=pangolin-site --branch=main --commit-dirty=true echo "==> deploy-site: done"