mcpField
P
platform-quick-deploy

platform-quick-deploy

github.com/forcedotcom云与 DevOps1.1k2.8k 次安装1 天前更新
代码仓库

关于 platform-quick-deploy

用于将已验证的部署提升到 Salesforce 生产组织的技能,面向执行生产发布的开发者。它先检查目标组织类型、验证任务有效期并要求明确确认,再执行快速部署且不重跑测试。

主要功能

  1. 01确认目标为生产组织
  2. 02检查验证任务及有效期
  3. 03部署前要求明确确认
  4. 04使用验证任务执行快速部署
  5. 05保存部署报告供审计

适用场景

  1. 01将已验证变更部署到生产组织
  2. 02确认验证任务仍处于有效期内
  3. 03为生产部署留存审计报告

MCP 相关

README 未说明该技能与 MCP 的关系。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/forcedotcom/sf-skills --skill platform-quick-deploy

安装后在 Claude Code 中输入/platform-quick-deploy确认已加载。

详细介绍

快速部署到生产环境

使用之前 sf project deploy validate 生成的作业 ID,将已验证的部署提升到 Production 组织。不会重新运行测试,也不会重新验证组件——只进行提升。

前置条件(严格把关)

开始任何操作之前,验证以下四项:

  1. 目标为 Production 使用把关分类器确认目标确实是生产环境。该分类器会以与部署钩子相同的方式解析组织(返回 production|sandbox|scratch|trial|unknown):

    "${CLAUDE_PLUGIN_ROOT}/scripts/sf-deploy-gate" bucket <alias>
    

    Production 指既不是 scratch 组织或沙盒(没有 -- 或 test.salesforce.com 主机标记),也不是试用版/Developer Edition 组织(主机为 orgfarm-*、*.develop.my.salesforce.com、*.pc-rnd.*,或有未来到期日期的试用组织,例如 SDO)。没有这些特征的 Dev Hub 属于生产环境。

    如果目标不是 Production(分类器返回的值不是 production)→ 停止,并转到 platform-metadata-deploy(它原生处理非生产环境)。unknown 表示无法确认组织类型(通常是组织记录不完整)。请明确说明:部署把关仍会允许部署,但该组织的保存时自动部署将保持关闭;重新使用 sf org login web 进行身份验证通常可以恢复分类结果。

  2. 存在验证记录

    • 如果 .sfdx/last-validation.json 存在,则读取它(由 platform-deploy-validate 留存)
    • 或向用户询问作业 ID
    • 或回退到 --use-most-recent(使用最近 3 天内的验证记录)
  3. 验证记录仍在有效期内

    • 明确指定 --job-id:根据 Salesforce 的快速部署时限,记录必须不超过 10 天
    • --use-most-recent:记录必须不超过 3 天
    • 如果记录的 createdAt 超出时限 → 停止,先运行 platform-deploy-validate
  4. 获得用户明确确认

    • 打印确认信息块(别名、实例 URL、版本、已验证组件数量、测试结果),并询问:“确认部署到 PRODUCTION?(yes/no)”
    • 未获得明确的 “yes” 之前,不要继续

工作流

步骤 1 — 显示生产环境确认横幅

格式必须完全如下:

┌─ PRODUCTION DEPLOY ─────────────────────────────┐
│ Org alias:      <alias>                         │
│ Instance:       <instanceUrl>                   │
│ Edition:        <edition>                       │
│ Validation ID:  <jobId>                         │
│ Validated:      <createdAt> (X days ago)        │
│ Components:     <componentCount> queued         │
│ Tests:          <run>/<passed>/<failed>         │
└─────────────────────────────────────────────────┘
Confirm deploy to PRODUCTION? (yes/no)
步骤 2 — 运行快速部署

用户回复 “yes” 后:

sf project deploy quick --job-id <id> --target-org <alias> --wait 30 --json

如果用户选择使用 --use-most-recent,则使用该选项。

快速部署将:

  • 将已验证的组件提升到组织
  • 不会重新运行测试(符合 Salesforce 平台行为)
  • 返回最终部署状态
步骤 3 — 保存部署报告

完成后,为审计留存:

mkdir -p .sfdx/deploy-history
sf project deploy report --job-id <id> --target-org <alias> --json > ".sfdx/deploy-history/<id>.json"

向用户显示:

  • ✅ 部署成功 — 已部署组件及耗时
  • ⚠️ 部署失败 — 错误摘要;建议查看报告
步骤 4 — 部署后指引

生产环境部署成功后,建议:

  • 在组织中对关键路径进行冒烟测试(如果已知,请提供直接 URL)
  • 接下来 30 分钟监控生产环境
  • 检查 Setup → Deployment Status 以确认部署状态
  • 如果出现回归:准备回滚计划(重新部署上一版本的软件包)

规则

  • 绝不要对 Production 目标运行 sf project deploy start(始终先验证,再执行快速部署)
  • 绝不要在生产环境使用 --ignore-errors 或 --ignore-warnings
  • 绝不要自动确认——必须获得用户明确的 “yes”
  • 绝不要快速部署超出有效期的作业 ID——应重新验证
  • 始终将部署报告保存到 .sfdx/deploy-history/,以供审计追踪
  • 如果 prod-check 钩子拒绝操作,不要绕过它——向用户说明拒绝原因,并建议先运行 platform-deploy-validate

评论

支持 Markdown