Skip to content

CI/CD 配置

GitHub Actions

项目已配置 GitHub Actions,push 到 main 分支后会自动部署到 Cloudflare。

配置步骤

1. 配置 GitHub Secrets

在 GitHub 仓库 Settings → Secrets and variables → Actions 中添加:

部署相关(必需):

  • CLOUDFLARE_API_TOKEN - Cloudflare API Token(需要 Account:Cloudflare Workers:Edit 权限)
  • CLOUDFLARE_ACCOUNT_ID - Cloudflare Account ID(可在 Dashboard 右侧找到)

构建时环境变量(必需):

  • VITE_API_URL - 后端 API 地址(完整 URL,如:https://api.example.com
  • VITE_AUTH_PORTAL_URL - 认证门户地址(完整 URL,如:https://auth.example.com,web 应用需要)

获取 API Token:

  1. 访问 Cloudflare Dashboard
  2. 创建 Token,权限选择:
    • Account:Cloudflare Workers:Edit
    • Account:Cloudflare Pages:Edit
    • Zone:Zone:Read(如果使用自定义域名)

2. 创建 Cloudflare Pages 项目(首次部署前)

首次部署前需要先创建 Cloudflare Pages 项目(在 Dashboard 或使用 wrangler pages project create)。

3. 配置 Cloudflare Workers Secrets

使用 wrangler secret put 配置后端运行时环境变量:

bash
cd apps/server

# 必需
wrangler secret put JWT_SECRET          # JWT 密钥(至少 32 字符)
wrangler secret put ACCELERATE_URL      # Prisma Accelerate URL
wrangler secret put ALLOWED_DOMAIN      # 允许的域名(如:exuils.com)

# 可选
wrangler secret put CORS_ORIGIN         # CORS 允许的源
wrangler secret put JWT_EXPIRES_IN      # JWT 过期时间(默认:7d)

环境变量说明:

  • ALLOWED_DOMAIN:允许的域名,会允许该域名及其所有子域名(如:exuils.com 允许 *.exuils.com
  • CORS_ORIGIN:精确匹配的 CORS 源(可选,如果设置了 ALLOWED_DOMAIN 可省略)

4. Push 代码触发部署

bash
git push origin main

工作流说明

智能路径触发 ⭐

CI/CD 配置了路径触发功能,只有相关应用变更时才会部署:

  • 只修改 apps/server/** → 只部署后端
  • 只修改 apps/web/** → 只部署前端
  • 只修改 apps/auth-portal/** → 只部署认证门户
  • 只修改 apps/docs/** → 只部署文档站点
  • 修改 packages/** → 部署所有依赖的应用(server、web、auth-portal)

这样可以:

  • ✅ 节省 CI/CD 时间
  • ✅ 减少不必要的部署
  • ✅ 独立部署各个应用

部署流程

  1. 检测变更 → 分析哪些应用需要部署
  2. 构建依赖 → 构建共享的 packages
  3. 构建应用 → 只构建变更的应用
  4. 部署 → 只部署变更的应用

手动触发

如果需要强制部署所有应用,可以在 GitHub Actions 页面:

  1. 进入 Actions 标签页
  2. 选择 Deploy to Cloudflare workflow
  3. 点击 Run workflow

查看部署状态

在 GitHub Actions 标签页中查看部署状态和日志。

Released under the MIT License.