name: Deploy Site on: push: tags: - 'site-v[0-9]*.[0-9]*.[0-9]*' workflow_dispatch: concurrency: group: deploy-site cancel-in-progress: false jobs: deploy-site: runs-on: nas steps: - name: Checkout uses: actions/checkout@v4 # runs-on: nas(host 模式,mac-pangolin-2 宿主 Mac)。Mac 自带 node/npm/npx, # 直接 host 跑 —— 从 ubuntu-latest 迁来:pangolin 无 ubuntu runner,原 job 永久排队。 # 内存:Astro 轻(几百 MB)、Next.js next build 峰值 ~1-2GB,Mac 足够(不放内存紧的 # pangolin1/NAS-Linux)。wrangler pages deploy 需网络 + CF token(已配 secret)。 - name: Compile (Astro 官网) env: SITE_URL: https://pangolin.yanmeiai.com run: bash scripts/ci/compile-site.sh # 用户中心(web/usercenter,basePath=/user,http 模式)构建 → out/。 - name: Compile (用户中心 Next.js) run: bash scripts/ci/compile-usercenter.sh # 合并:用户中心并入官网 dist/user/ + _headers 按 /user/* 分域(见脚本)。 # 域名迁移:原独立子域 app.yanmeiai.com → 主站子路径 pangolin.yanmeiai.com/user/。 - name: Combine (官网 + 用户中心) run: bash scripts/ci/combine-site.sh # 单次部署合并产物到 pangolin-site:/ 官网、/user/ 用户中心。 - name: Deploy → Cloudflare Pages env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} run: bash scripts/ci/deploy-site.sh