快速入门:将 Salesforce CLI 与 DevOps Center 一起使用
使用 Salesforce CLI 从命令行自动化 DevOps Center 任务。在此快速入门中,您可以创建并激活漏斗,管理工作项目,并将更改升级到下一个漏斗阶段。
所需的 Edition
| 适用于:Lightning Experience in Professional(需要 API 访问权限)、Enterprise、Performance、Unlimited 和 Developer Edition |
| 不适用于:Government Cloud Plus。联系您的 Salesforce 客户主管了解更多详细信息。 |
| 不适用于:欧盟操作区域。欧盟操作区域是一项特殊的付费服务,提供了更高级别的数据驻留承诺。根据标准产品条款和条件,不属于欧盟臭氧区域的欧盟组织也支持DevOps Center。 |
| 所需用户权限 | |
|---|---|
| 创建漏斗: | DevOps Center 管理员 |
| 要通过漏斗升级更改: | DevOps Center 部署管理器 |
有关所有可用的标志和选项,请参阅Salesforce CLI 命令参考。
在您开始前,请完成这些任务。
- 安装 Salesforce CLI。见安装 Salesforce CLI。
- 安装 DevOps Center 插件。
sf plugins install @salesforce/plugin-devops-center - 对 DevOps Center 可用的组织进行身份验证。此快速入门使用
my-devops-org作为组织别名。sf org login web --alias my-devops-org - 从 UI 创建 DevOps Center 项目。
- 将 GitHub(或 Bitbucket)存储库连接到 DevOps Center 组织。
- 将经过身份验证的组织设置为默认组织。
sf config set target-org=my-devops-org设置目标组织会忽略后续命令中的
--target-org my-devops-org。此快速入门在每个命令中包含标志,以便清除目标组织。
设置漏斗
创建漏斗,添加并配置阶段,激活漏斗,并附加项目。
-
列出您的项目以查找项目 ID。
sf devops project list --target-org my-devops-org复制要附加到漏斗的项目 ID。此快速入门使用
0Hn000000000001中的示例。 -
创建无效漏斗,并将其连接到存储库。
sf devops pipeline create --target-org my-devops-org --name "Release Pipeline" --repo https://github.com/myorg/myrepo从命令输出复制漏斗 ID。此快速入门使用
0XB000000000001中的示例。在您配置阶段并激活之前,漏斗将保持非活动状态。
要在创建漏斗时创建存储库,请使用带有
--repo-type github|bitbucket的--create-repo。 -
将阶段添加到漏斗。新漏斗包含默认最终阶段。通过使用
--next-stage-id指定现有阶段,在现有阶段之前添加每个新阶段。例如,添加集成阶段。
sf devops pipeline stage add --target-org my-devops-org --pipeline-id 0XB000000000001 --name "Integration" --next-stage-id 0Xc000000000001从命令输出复制阶段 ID。其余示例使用集成阶段的
0Xc000000000005。对每个附加阶段重复该命令,例如 UAT。
提示 在 DevOps Center UI 中查看漏斗,以获取后续命令的阶段 ID。或者运行sf devops pipeline get --pipeline-id 0XB000000000001。 -
配置每个阶段。每个阶段需要分支和环境。从右向左配置阶段,因为最后一个阶段必须有分支,然后才能配置之前的阶段。
将分支添加到集成阶段。如果不存在分支,
--create-vcs-branch标志会在存储库中创建分支。sf devops stage branch add --target-org my-devops-org --pipeline-id 0XB000000000001 --stage-id 0Xc000000000005 --branch-name integration --create-vcs-branch将 Sandbox 环境添加到阶段。
sf devops stage environment add --target-org my-devops-org --pipeline-id 0XB000000000001 --stage-id 0Xc000000000005 --environment-name Integration_Org --org-type Sandbox将打开浏览器窗口,以便您可以对环境进行身份验证。将
--org-type Production用于生产组织。在无头环境中,添加--no-browser,并按照命令返回的身份验证说明进行操作。为每个阶段重复分支和环境命令。使用适合每个阶段的分支名称、环境名称和组织类型。
-
激活漏斗。
重要 在通过漏斗阶段升级更改后,您无法对其进行修改。在运行此命令之前,请确保所有阶段都配置正确。sf devops pipeline update --target-org my-devops-org --pipeline-id 0XB000000000001 --activate -
将 DevOps Center 项目附加到漏斗。
sf devops pipeline project add --target-org my-devops-org --pipeline-id 0XB000000000001 --project-id 0Hn000000000001漏斗准备就绪。在 DevOps Center UI 中创建工作项目或运行sf devops work-item create命令。
管理工作项目
通过启动工作项目、提交您的更改、创建审核并标记准备升级的工作项目来完成开发周期。
您可以在所有工作项目和查看命令中传递--work-item-id而不是--work-item-name。
-
将工作项目状态设置为进行中。DevOps Center 会为工作项目创建功能分支。
sf devops work-item update --target-org my-devops-org --work-item-name WI-000042 --status "In Progress" -
从连接的存储库中获取功能分支,并在本地项目中签出。
git fetch origin git checkout WI-000042 -
从开发组织中检索更改。本示例使用别名
my-sandbox从组织检索 Apex 类。sf project retrieve start --target-org my-sandbox --metadata ApexClass:MyNewClass -
查看检索到的文件,暂存它们,提交它们,并推送功能分支。
git status git add force-app git commit -am "Implement new feature" git push origin WI-000042如果 Salesforce DX 项目使用不同的软件包目录,请调整传递给
git add的路径。 -
创建变更请求(拉取请求),将功能分支合并到目标分支中。
sf devops review create --target-org my-devops-org --work-item-name WI-000042 - 等待团队批准并合并变更请求。
-
更新工作项目状态,以表示准备升级。
sf devops work-item update --target-org my-devops-org --work-item-name WI-000042 --status "Ready to Promote"
升级工作项目
将工作项目升级到下一个漏斗阶段。DevOps Center 验证升级,运行为目标阶段配置的测试套件,并在测试通过时部署更改。
-
使用工作项目 ID 和目标阶段 ID 升级工作项目。
sf devops promote --target-org my-devops-org --work-item-id 0Wx000000000042 --target-stage-id 0Xc000000000002命令输出包含请求 ID。使用它来检查促销状态。
Status: Completed Message: Work items successfully promoted to UAT. Request ID: a0B000000000001 Promoted Work Items ─────────────────── 0Wx000000000042 -
使用请求 ID 检查促销状态。
sf devops request status --target-org my-devops-org --request-token a0B000000000001
当请求状态完成时,工作项目在目标阶段可用。
常用任务
在日常开发工作流中使用这些命令。
-
将多个工作项目升级到相同阶段。为每个工作项目指定一次
--work-item-id。sf devops promote --target-org my-devops-org --work-item-id 0Wx000000000042 --work-item-id 0Wx000000000043 --target-stage-id 0Xc000000000002 -
将外部合并的更改部署到与 DevOps Center 不同步的阶段。
sf devops promotion complete --target-org my-devops-org --target-stage-id 0Xc000000000002
