借助 Cloud Build,您可以配置不立即执行构建的触发器,并且将构建标记为待处理直到批准。如果具有权限的用户批准待处理的构建,则构建将启动。如果批准被拒绝,则构建将无法启动。
本页面介绍如何手动批准或拒绝构建。如需了解如何配置需要批准的触发器,请参阅创建构建触发器。
准备工作
-
Enable the Cloud Build API.
安装 Google Cloud CLI。
创建配置为需要批准的构建触发器(如果尚未执行此操作)。
授予权限
如果用户具有 Cloud Build Editor 角色,则用户有权将触发器更新为需要或不需要批准。如需详细了解 Cloud Build 权限,请参阅 IAM 和权限。为了授予用户批准项目内构建的权限,用户必须拥有 Cloud Build Approver 角色。
如需添加 Cloud Build Approver 角色,请执行以下操作:
在 Google Cloud 控制台中打开 IAM 页面。
点击授予使用权限。
您将看到授予访问权限面板。
在添加主账号部分中,添加用户以授予他们权限,使其可以批准项目中待处理的构建。
您必须在此部分中添加一个或多个主账号。如果您将自己添加为主账号,请注意,在触发器受到批准的控制时,您仍然需要手动批准待处理的构建。
在分配角色部分中,依次选择 Cloud Build > Cloud Build Approver。
您指定的用户现在有权批准或拒绝待处理的构建。
批准构建
控制台
如需在 Google Cloud 控制台中批准待处理的构建,请执行以下操作:
在 Google Cloud 控制台中打开 Cloud Build 信息中心页面。
如果您有要批准的构建,您会在页面顶部看到一条消息,其中包含等待批准的构建的数量。在该消息的右侧,点击查看构建以查看等待批准的构建的列表。
点击您要批准的构建对应的复选框。您可以选择多个要批准的构建,也可以选择一个要批准的构建。
在页面顶部,点击批准以批准您选择的构建。
构建开始之前,您将看到批准构建对话框。在对话框中,您可以添加可选消息和网址,使其与构建的批准一起显示。如需添加网址,请点击显示其他选项以输入网址。
在该对话框中,点击批准以批准构建。
您批准后,构建将立即开始。如果组织政策 (constraints/cloudbuild.allowedIntegrations
) 拒绝访问已连接的代码库,该政策将覆盖批准。如需了解详情,请参阅组织政策控制构建门。
gcloud
如需使用 gcloud commands
批准待处理的构建,请在终端窗口中运行以下命令:
gcloud builds approve BUILD_ID \
--project=PROJECT_ID \
--url=URL \
--comment=COMMENT
将上述命令中的占位值替换为以下内容:
BUILD_ID
是您要批准的构建的 ID。PROJECT_ID
是项目 ID。- [可选]
URL
是包含批准相关信息(例如,指向 JIRA 工单的链接)的网址。 - [可选]
COMMENT
是您要在构建批准后显示的消息。
您批准后,构建将立即开始。如果设置了组织政策来为允许的集成定义 build (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
现在,您应该会收到服务待处理构建的通知。
后续步骤
- 了解如何创建和管理构建触发器。
- 了解如何查看构建触发器的构建结果