运维部署
Salesforce 元数据部署与 CI/CD 编排:需要…
用 sf CLI v2 安全验证、部署、验证和编排 Salesforce 元数据,并处理 scratch org/沙箱/CI/CD 与部署失败诊断。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
Salesforce 元数据部署与 CI特定
解决思路
- 仅使用 sf CLI v2 执行 Salesforce 部署编排。
- 不要使用已退役的 sf scanner;静态分析使用 Code Analyzer v5,即 sf code-analyzer。
- 在非 source-tracking org 上,deploy/retrieve 命令必须显式指定范围,例如 --source-dir、--metadata 或 --manifest。
- 真实部署前优先使用 --dry-run 进行验证。
- 对 Flow 先安全部署,验证后再激活。
- 元数据验证或部署后,将测试数据创建交给 sf-data。
- 按默认部署顺序执行:1 Custom objects / fields;2 Permission sets;3 Apex;4 Flows as Draft;5 Flow activation / post-verify,以避免依赖和 FLS 失败。
- 先询问或推断目标 org alias 和环境类型。
- 确认部署范围:source-dir、metadata 列表或 manifest。
- 确认操作类型:仅验证、部署、quick deploy、retrieve 或 CI/CD 指导。
- 确认所需 test level 和回滚预期。
- 确认是否涉及特殊元数据类型:Flow、permission sets、agents、packages。
- 执行预检命令 sf --version。
- 执行预检命令 sf org list。
- 执行预检命令 sf org display --target-org <alias> --json。
- 执行预检命令 test -f sfdx-project.json。
- 预检阶段确认认证、仓库结构、package 目录和目标范围。
- 先验证:sf project deploy start --dry-run --source-dir force-app --target-org <alias> --wait 30 --json。
- 当变更集有针对性时,使用 manifest 或 metadata 范围的验证。
- 验证成功后,提供下一步安全流程:立即部署。
- 验证成功后,提供下一步安全流程:分配 permission sets。
- 验证成功后,提供下一步安全流程:通过 sf-data 创建测试数据。
- 验证成功后,提供下一步安全流程:运行测试/冒烟检查。
- 验证成功后,提供下一步安全流程:按顺序编排多个 post-deploy 步骤。
- 部署最小正确范围,source-dir 部署:sf project deploy start --source-dir force-app --target-org <alias> --wait 30 --json。
- 部署最小正确范围,manifest 部署:sf project deploy start --manifest manifest/package.xml --target-org <alias> --test-level RunLocalTests --wait 30 --json。
- 使用 Spring '26 相关测试选择的 manifest 部署:sf project deploy start --manifest manifest/package.xml --target-org <alias> --test-level RunRelevantTests --wait 30 --json。
- 验证成功后的 quick deploy:sf project deploy quick --job-id <validation-job-id> --target-org <alias> --json。
- 验证部署报告:sf project deploy report --job-id <job-id> --target-org <alias> --json。
- 随后验证测试、Flow 状态、权限分配和冒烟测试行为。
- 清晰报告:总结已部署、失败、跳过内容以及下一步安全动作。
- 使用 references/deployment-report-template.md 输出模板。
- 处理 FIELD_CUSTOM_VALIDATION_EXCEPTION:可能由 validation rule 或坏测试数据导致,调整数据或规则时序。
- 处理 INVALID_CROSS_REFERENCE_KEY:缺少依赖,先包含被引用的元数据。
- 处理 CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY:trigger / Flow / validation 副作用,检查自动化栈和失败逻辑。
- 处理部署期间测试失败:代码损坏或脆弱测试,运行定向测试,修复根因,重新验证。
- 处理 permset 中找不到字段/对象:顺序错误,先部署 objects/fields 再部署 permission sets。
- 处理 Flow invalid / version conflict:依赖或激活问题,先作为 Draft 部署,验证后再激活。
- 需要完整工作流时查阅 references/orchestration.md 和 references/trigger-deployment-safety.md。
- CI/CD 默认流水线按此形状:1 authenticate;2 validate repo / org state;3 static analysis;4 dry-run deploy;5 tests + coverage gates;6 deploy;7 verify + notify。
- 当 org 策略和发布风险允许时,对 Apex 密集型部署考虑 --test-level RunRelevantTests。
- 配合现代 Apex 测试注解 @IsTest(testFor=...) 和 @IsTest(isCritical=true),参考 sf-apex。
- Agentforce 部署时,用本技能编排 agents 周围的部署/发布顺序,但作者决策用 agent-specific 技能。
- 对 .agent 编写和验证使用 sf-ai-agentscript。
- 对 Agent Builder / Prompt Builder / metadata 配置使用 sf-ai-agentforce。
- Agent DevOps 详情(包括 Agent: pseudo metadata、publish/activate、sync-between-orgs)查阅 references/agent-deployment-guide.md。
- 跨技能集成:custom object/field 创建交给 sf-metadata,因为需先定义元数据再部署。
- 跨技能集成:Apex 编译/评审/修复交给 sf-apex。
- 跨技能集成:Flow 创建/修复交给 sf-flow。
- 跨技能集成:测试数据或 seed records 交给 sf-data。
- 跨技能集成:Agent Script 构建/发布就绪交给 sf-ai-agentscript。
- 从 references/orchestration.md、references/deployment-workflows.md、references/deployment-report-template.md 开始查阅。
- 专用部署安全参考:references/trigger-deployment-safety.md、references/agent-deployment-guide.md、references/deploy.sh。
- 完成格式输出:Deployment goal: <validate / deploy / retrieve / pipeline>;Target org: <alias>;Scope: <source-dir / metadata / manifest>;Result: <passed / failed / partial>;Key findings: <errors, ordering, tests, skipped items>;Next step: <safe follow-up action>。
适用边界 · 注意事项
- 不要用于编写 Apex/LWC 代码、创建 metadata XML、构建 Flow、查询 org 数据或编写 Agent Script 逻辑;这些分别交给 sf-apex、sf-lwc、sf-metadata、sf-flow、sf-data、sf-ai-agentscript。
- 不要在未安装/未认证 sf CLI v2 或没有目标 Salesforce org/alias 时使用。
- 不要用本技能做 Agentforce agent 的作者决策;作者决策交给 sf-ai-agentscript 和 sf-ai-agentforce。