Files
superpowers-zh/.github/workflows/deploy-site.yml
AI不止语 09af7860f3 fix(ci): 部署前确保 Cloudflare Pages 项目存在
首次部署因 "Project not found" 失败——wrangler pages deploy 不会自动
创建项目。新增一步 wrangler pages project create(幂等,已存在则跳过),
用已配置的 CLOUDFLARE_API_TOKEN(含 Pages:Edit 权限)自动建项目,
使 CI 全自动完成"建项目 + 部署",无需手动在面板创建。
2026-06-20 05:04:03 +08:00

44 lines
1.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Deploy site to Cloudflare Pages
# 官网自动部署site/ 或 skills/ 变更时重建并发布。
# 需在仓库 Settings → Secrets 配置 CLOUDFLARE_API_TOKEN 与 CLOUDFLARE_ACCOUNT_ID。
on:
push:
branches: [main]
paths:
- 'site/**'
- 'skills/**'
- '.github/workflows/deploy-site.yml'
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
steps:
# Action 全部 SHA 固定(防供应链/标签劫持,因本 job 持有可写的 Cloudflare token
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 20
- name: Build site
run: node site/build.mjs
# 首次部署前确保 Pages 项目存在wrangler pages deploy 不会自动创建)。
# 幂等:项目已存在时创建命令报错,由 || 兜住继续。token 需 Pages:Edit 权限。
- name: Ensure Pages project exists
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
run: |
npx --yes wrangler@3 pages project create superpowers-zh-site \
--production-branch main \
|| echo "项目已存在或创建跳过,继续部署"
- name: Deploy to Cloudflare Pages
uses: cloudflare/wrangler-action@9acf94ace14e7dc412b076f2c5c20b8ce93c79cd # v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy site/dist --project-name=superpowers-zh-site