在审批时对 build 进行门控

借助 Cloud Build,您可以配置不立即执行构建的触发器,并且将构建标记为待处理直到批准。如果具有权限的用户批准待处理的构建,则构建将启动。如果批准被拒绝,则构建将无法启动。

本页面介绍如何手动批准或拒绝构建。如需了解如何配置需要批准的触发器,请参阅创建构建触发器

准备工作

  • Enable the Cloud Build API.

    Enable the API

授予权限

如果用户具有 Cloud Build Editor 角色,则用户有权将触发器更新为需要或不需要批准。如需详细了解 Cloud Build 权限,请参阅 IAM 和权限。为了授予用户批准项目内构建的权限,用户必须拥有 Cloud Build Approver 角色。

如需添加 Cloud Build Approver 角色,请执行以下操作:

  1. 在 Google Cloud 控制台中打开 IAM 页面。

    打开 IAM 页面

  2. 点击授予使用权限

    您将看到授予访问权限面板。

  3. 添加主账号部分中,添加用户以授予他们权限,使其可以批准项目中待处理的构建。

    您必须在此部分中添加一个或多个主账号。如果您将自己添加为主账号,请注意,在触发器受到批准的控制时,您仍然需要手动批准待处理的构建。

  4. 分配角色部分中,依次选择 Cloud Build > Cloud Build Approver

您指定的用户现在有权批准或拒绝待处理的构建。

批准构建

控制台

如需在 Google Cloud 控制台中批准待处理的构建,请执行以下操作:

  1. 在 Google Cloud 控制台中打开 Cloud Build 信息中心页面。

    打开“Cloud Build 信息中心”页面

  2. 如果您有要批准的构建,您会在页面顶部看到一条消息,其中包含等待批准的构建的数量。在该消息的右侧,点击查看构建以查看等待批准的构建的列表。

  3. 点击您要批准的构建对应的复选框。您可以选择多个要批准的构建,也可以选择一个要批准的构建。

  4. 在页面顶部,点击批准以批准您选择的构建。

  5. 构建开始之前,您将看到批准构建对话框。在对话框中,您可以添加可选消息和网址,使其与构建的批准一起显示。如需添加网址,请点击显示其他选项以输入网址。

  6. 在该对话框中,点击批准以批准构建。

您批准后,构建将立即开始。如果组织政策 (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 控制台中拒绝待处理的构建,请执行以下操作:

  1. 在 Google Cloud 控制台中打开 Cloud Build 信息中心页面。

    打开“Cloud Build 信息中心”页面

  2. 如果您有要批准的构建,您会在页面顶部看到一条消息,其中包含等待批准的构建的数量。在该消息的右侧,点击查看构建以查看等待批准的构建的列表。

  3. 您可以选择多个要拒绝的构建,也可以选择一个要拒绝的构建。点击您要拒绝的构建对应的复选框。

  4. 点击页面顶部的拒绝以拒绝该构建。

如果拒绝构建,则构建将不会启动。

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 维护的通知程序(如 SlackSMTP 服务器)或通过创建自己的通知程序来接收有关待处理构建的通知。

如需配置通知,请执行以下操作:

  1. 按照以下某个页面中的说明,为所需服务配置通知:

  2. 使用上述某个页面配置通知时,您必须将通知程序配置为过滤状态为“待处理”的构建。这将向您发送有关构建等待批准的通知。在以下示例 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 通知程序的通知程序配置文件

  3. 如需部署通知程序,请在终端中运行 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
    

现在,您应该会收到服务待处理构建的通知。

后续步骤