您可以将 Cloud Deploy 与用于软件交付的一些其他系统集成。本页介绍了如何将 Cloud Deploy 与以下各项集成:
- 测试工具
- 工作流管理
请参阅与 CI 系统集成,了解如何从 CI 流水线调用 Cloud Deploy。
准备工作
本页面中的说明假定您已满足以下条件:
- 您定义了至少一个目标,并且交付流水线引用了该目标。 
- 您已设置 Pub/Sub 通知,以接收以下主题的通知: - clouddeploy-operations
- clouddeploy-approvals
 
与自动化测试集成
您可以将 Cloud Deploy 与 Pub/Sub 搭配使用,将测试与交付流水线相集成,以便自动提升版本以实现持续交付。
您还可以在发布中使用注释来提供测试结果的链接。如需了解详情,请参阅将标签和注释与 Cloud Deploy 搭配使用。
使用 Pub/Sub 自动执行提升
- 侦听来自 - clouddeploy-operations主题的 Pub/Sub 消息。- 该消息包含以下特性: - Action: SUCCEED
- ResourceType: Rollout
- Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
 
- 当您收到部署成功的通知时,请在已部署的应用上运行测试。 
- 测试成功后,调用 Cloud Deploy 以自动提升到下一阶段: - gcloud deploy releases promote RELEASE_NAME \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --annotations=KEY=VALUE,...- 其中: - RELEASE_NAME - 是版本的名称。必须提供此值。 
- PIPELINE_NAME - 是管理此版本的交付流水线的名称。此值为必填项。 
- REGION - 是流水线在其中运行的区域。如果您设置了属性 - deploy/region,则可以省略此标志。
- KEY=VALUE,... - 是一个或多个键值对的列表,以英文逗号分隔,可包含测试结果的相关信息和其他测试信息。示例如下: - gcloud deploy releases promote --annotations="from_target=test,status=stable"- 发布的注释是不可变的,因此,如果您添加状态注释,则无法在同一次发布中更新该状态。 
 
使用注释提供对测试结果的访问权限
如果您的网址指向可访问测试结果的位置,则可以使用 --annotations 标志以发布的注释形式提供该网址。示例如下:
gcloud deploy releases promote --delivery-pipeline=my-demo-app-1 --region=us-central1 --project=my-demo-app-1-project --release=test-release-001 --annotations="test_results_url=https://example.com/results/my-demo-app-test-results-dev"
如需了解详情,请参阅将标签和注释与 Cloud Deploy 搭配使用。
集成第三方工作流管理
Cloud Deploy 将操作消息发布到 Pub/Sub。您的工作流管理工具可以订阅这些 Pub/Sub 主题,并使用它们来触发特定工作流。
对于批准
clouddeploy-approvals 主题会在发布需要批准时通知您系统。然后,您的外部工作流系统可以发挥它的能力来获取批准,然后调用 gcloud deploy rollouts approve。
发出 rollouts approve 命令的账号必须具有预定义的 IAM 角色 roles/clouddeploy.approver。
如需设置外部批准工作流,请执行以下操作:
- 
在该目标的定义中,添加 requireApproval: true。
- 如需使用这些消息,请订阅 - clouddeploy-approvalsPub/Sub 主题并设置工作流管理系统。
- 当您的工作流管理系统收到来自 - clouddeploy-approvals主题且包含- "Action": "Required"的消息时,它会启动一个批准工作流,该工作流根据贵组织的要求进行配置。- 该消息还包含对要批准的发布的引用,格式如下: - Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...- 批准工作流的输出是批准或拒绝发布。 
- 工作流管理系统通过以下命令的形式向 Cloud Deploy 返回批准或拒绝: - 用于批准发布的命令如下所示: - gcloud deploy rollouts approve ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME- 用于拒绝发布的命令如下所示: - gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME- 其中: - ROLLOUT - 是为其请求批准的发布的名称。 
- PIPELINE_NAME - 是管理应用部署的交付流水线。 
- RELEASE_NAME - 是与此发布关联的版本的名称。 
- REGION - 是在其中运行交付流水线的区域。 
 
以下是一个示例:
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1