Skip to content

proposal: replace Vercel GitHub App deploys with Vercel CLI in GitHub Actions #298

Description

@fennoai

背景

当前前端部署依赖 Vercel GitHub App。频繁提交 PR 或 commits 时,每次提交都会触发部署,可能触发 Vercel 免费额度/部署频率限制,导致 CI 或部署失败。

目标

调研并落地一个可控的 Vercel CLI + GitHub Actions 部署方案,减少对 Vercel GitHub App 自动部署的依赖,并明确 Preview 与 Production 的部署策略。

建议方案

  1. 在 GitHub Actions 中安装并调用 Vercel CLI。
  2. 在前端发生变更时执行安装依赖、构建检查,并通过 Vercel CLI 完成构建与上传/部署。
  3. 使用 GitHub Actions Secrets 或 Environment Secrets 管理 Vercel 所需凭据(至少包括 VERCEL_TOKENVERCEL_ORG_IDVERCEL_PROJECT_ID)。
  4. 为 PR Preview 与默认分支 Production 部署分别设计触发条件,避免无关改动重复部署。
  5. 增加并发控制、取消过期部署,以及必要的失败重试/日志输出,降低频繁提交造成的限速影响。
  6. 评估是否需要关闭或调整 Vercel GitHub App 的重复自动部署,避免 CLI 与 App 同时部署同一提交。

需要确认

  • 当前 Vercel 项目的 Preview/Production 分支与域名配置。
  • 免费额度和部署频率限制下的安全触发策略。
  • GitHub Actions 中应使用 vercel pullvercel buildvercel deploy --prebuilt,还是直接使用 vercel deploy
  • 部署密钥的最小权限、轮换方式,以及生产环境审批要求。
  • 是否保留 Vercel GitHub App,仅用于状态回写,还是完全改为 CLI 管理。

验收标准

  • 前端变更可以通过 GitHub Actions 使用 Vercel CLI 完成 Preview 部署。
  • 默认分支的 Production 部署策略已实现并有明确保护措施。
  • 必要 Secrets、权限和配置文档已补充,且不在日志中泄露凭据。
  • 不会因 Vercel App 与 CLI 重复触发而产生重复部署。
  • 已验证非前端改动不会触发不必要的部署,且工作流失败时能给出可诊断日志。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions