借助 Cloud Build,您可以配置不立即执行构建的触发器,并且将构建标记为待处理直到批准。如果具有权限的用户批准待处理的构建,则构建将启动。如果批准被拒绝,则构建将无法启动。
本页面介绍如何手动批准或拒绝构建。如需了解如何配置需要批准的触发器,请参阅创建构建触发器。
准备工作
-
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
安装 Google Cloud CLI。
创建配置为需要批准的构建触发器(如果尚未执行此操作)。
授予权限
如果用户具有 Cloud Build Editor 角色,则用户有权将触发器更新为需要或不需要批准。如需详细了解 Cloud Build 权限,请参阅 IAM 和权限。为了授予用户批准项目内构建的权限,用户必须拥有 Cloud Build Approver 角色。
如需添加 Cloud Build Approver 角色,请执行以下操作:
在 Google Cloud 控制台中打开 IAM 页面。
点击授予访问权限。
您将看到授予访问权限面板。
在添加主账号部分中,添加用户以授予他们批准项目中待处理构建的权限。
您必须在此部分中添加一个或多个主账号。如果您将自己添加为主账号,请注意,在触发器受到批准的控制时,您仍然需要手动批准待处理的构建。
在分配角色部分中,选择 Cloud Build > Cloud Build 审批人。
您指定的用户现在有权批准或拒绝待处理的构建。
批准构建
控制台
如需在 Google Cloud 控制台中批准待处理的构建,请执行以下操作:
在 Google Cloud 控制台中打开 Cloud Build 信息中心页面。
如果您有要批准的构建,您会在页面顶部看到一条消息,其中包含等待批准的构建的数量。在该消息的右侧,点击查看构建以查看等待批准的构建的列表。
点击您要批准的构建对应的复选框。您可以选择多个要批准的构建,也可以选择一个要批准的构建。
在页面顶部,点击批准以批准您选择的构建。
构建开始之前,您将看到批准构建对话框。在对话框中,您可以添加可选消息和网址,使其与构建的批准一起显示。如需添加网址,请点击显示其他选项以输入网址。
在该对话框中,点击批准以批准构建。
批准后,构建将立即开始。如果组织政策 (constraints/cloudbuild.allowedIntegrations
) 拒绝访问已连接的代码库,则该政策会替换审批。如需了解详情,请参阅根据组织政策对 build 进行门控。
gcloud
如需使用 gcloud commands
批准待处理的构建,请在终端窗口中运行以下命令:
gcloud builds approve BUILD_ID \
--project=PROJECT_ID \
--url=URL \
--comment=COMMENT
将上述命令中的占位值替换为以下内容:
BUILD_ID
是您要批准的构建的 ID。PROJECT_ID
是项目 ID。- [可选]
URL
是包含批准相关信息(例如,指向 JIRA 工单的链接)的网址。 - [可选]
COMMENT
是您要在构建批准后显示的消息。
批准后,构建将立即开始。如果设置了用于定义允许的集成版本的组织政策 (constraints/cloudbuild.allowedIntegrations
),则该政策会替换审批。如需了解详情,请参阅将组织政策应用于构建触发器。
拒绝构建
控制台
如需在 Google Cloud 控制台中拒绝待处理的构建,请执行以下操作:
在 Google Cloud 控制台中打开 Cloud Build 信息中心页面。
如果您有要批准的构建,您会在页面顶部看到一条消息,其中包含等待批准的构建的数量。在该消息的右侧,点击查看构建以查看等待批准的构建的列表。
您可以选择多个要拒绝的构建,也可以选择一个要拒绝的构建。点击您要拒绝的构建对应的复选框。
点击页面顶部的拒绝以拒绝该构建。
如果拒绝构建,则构建将不会启动。
gcloud
如需使用 gcloud commands
拒绝待处理的构建,请在终端窗口中运行以下命令:
gcloud builds reject BUILD_ID \
--project=PROJECT_ID \
--url=URL \
--comment=COMMENT
将上述命令中的占位值替换为以下内容:
BUILD_ID
是您要拒绝的构建的 ID。PROJECT_ID
是项目 ID。- [可选]
URL
是包含拒绝相关信息(例如,指向 JIRA 工单的链接)的网址。 - [可选]
COMMENT
是您要在构建拒绝后显示的消息。
如果拒绝构建,则构建将永远不会启动。
接收等待批准的构建的通知
您可以通过使用 Cloud Build 维护的通知程序(如 Slack 或 SMTP 服务器)或通过创建自己的通知程序来接收有关待处理构建的通知。
如需配置通知,请执行以下操作:
按照以下某个页面中的说明,为所需服务配置通知:
使用上述某个页面配置通知时,您必须将通知程序配置为过滤状态为“待处理”的构建。这将向您发送有关构建等待批准的通知。在以下示例 SMTP 通知程序配置文件中,过滤条件字段使用通用表达式语言 (CEL) 过滤状态为“待处理”的构建事件:
apiVersion: cloud-build-notifiers/v1 kind: SMTPNotifier metadata: name: example-smtp-notifier spec: notification: filter: build.status == Build.Status.PENDING delivery: server: example.gmail.com port: 0000 sender: sender@example.com ...
如需查看完整示例,请参阅 SMTP 通知程序的通知程序配置文件。
如需部署通知程序,请在终端中运行
gcloud run
命令。以下示例使用 Cloud Run 部署 SMTP 通知程序。gcloud run deploy example.gmail.com \ --image=us-east1-docker.pkg.dev/gcb-release/cloud-build-notifiers/smtp:latest \ --update-env-vars=CONFIG_PATH=smtp.yaml, PROJECT_ID=my-project
现在,您应该会收到服务待处理构建的通知。
后续步骤
- 了解如何创建和管理构建触发器。
- 了解如何查看构建触发器的构建结果