Cloud Build 触发器

Cloud Build 使用构建触发器来启用 CI/CD 自动化。您可以配置触发器以侦听传入的事件(例如,将新提交推送到代码库或者启动拉取请求时),然后在收到新事件时自动执行构建。您还可以配置触发器,以便对源代码库的任何更改或仅符合特定条件的更改构建代码。

本页面简要介绍与触发器关联的每种触发器类型和功能。

代码库事件触发器

借助 Cloud Build,您可以针对代码库事件(例如推送或拉取请求)自动执行构建。您可以将外部代码库(例如 GitHub 或 Bitbucket 中的代码库)关联到 Cloud Build,或使用 Cloud Source Repositories 中的代码进行构建。虽然您可以将任何源代码库连接到 Cloud Build,但 Cloud Build 提供了特定的代码库事件触发器,可用于轻松集成特定的源代码管理系统 (SCM)。本部分讨论可用的代码库事件触发器。

GitHub 触发器

您可以创建 GitHub 触发器,以自动执行构建以响应代码库事件(例如推送或拉取请求)。您可以在 GitHub 和 Cloud Console 上查看触发器的构建状态。您还可以使用 Cloud Build GitHub 应用连接和构建 GitHub 中的代码。如需了解详情,请参阅从 GitHub 构建代码库

GitHub Enterprise 触发器

您可以为托管在 GitHub Enterprise 实例(包括在本地环境中且无法通过公共互联网连接访问的实例)创建的代码库创建触发器。GitHub Enterprise 触发器可用于执行构建,以响应来自 GitHub Enterprise 实例的推送或拉取请求。如需了解详情,请参阅从 GitHub Enterprise 构建代码库

手动触发器

您可以创建手动触发器以手动执行构建,并在执行构建之前在调用时替换定义的替代变量值。您还可以将手动触发器配置为按计划运行。如需了解详情,请参阅创建手动触发器

Pub/Sub 触发器

您可以创建 Pub/Sub 触发器以执行构建,以响应通过 Pub/Sub 发布的任何消息。例如,您可以使用 Pub/Sub 触发器进行构建,以响应推送到 Artifact Registry 的映像。在这种情况下,您可以将触发器配置为仅在推送的映像与特定标记(例如 prod)匹配时才使用过滤条件执行构建。另外,Pub/Sub 触发器可以配置为订阅任何 Pub/Sub 主题。如需了解详情,请参阅 Pub/Sub 触发器

webhook 触发器

您可以创建网络钩子触发器以执行构建以响应网络钩子。通过发送到自定义网址的 Webhook 事件,您可以将外部系统和外部源代码管理系统 (SCM)(例如 Bitbucket.com、Bitbucket Server 或 GitLab)直接连接到 Cloud Build。创建网络钩子触发器时,您还可以在触发器上以内嵌方式定义构建配置,以控制构建期间触发器克隆的代码库,而不是明确指定源代码。如需了解详情,请参阅创建网络钩子触发器。此外,如需了解如何使用网络钩子触发器从特定 SCM 构建代码库,请参阅从 Bitbucket Server 构建代码库从 Bitbucket Cloud 构建代码库从 GitLab 构建代码库

触发器功能

Cloud Build 触发器提供的功能可让您对构建的执行方式进行精细控制。本部分讨论与触发器关联的各种功能。

安排手动触发器

您可以安排手动触发器按预定义的时间表自动执行构建。例如,您可能需要配置计划触发器,以在每个星期六上午 6:00 运行构建。如需安排构建,您可以创建手动触发器并使用 Cloud Scheduler 调用该触发器。如需了解详情,请参阅创建计划触发器

过滤事件

Cloud Build 在构建资源中列出的字段上搭配使用通用表达式语言 (CEL) 与变量 build,以便访问与构建事件关联的字段,例如触发器 ID、图片列表或替换值。您可以使用 filter 字符串,通过构建资源中列出的任何字段,来过滤通构建配置文件中的构建事件。如需了解详情,请参阅使用 CEL 过滤构建事件

替代变量

您可以在构建配置文件中指定替换变量,以在构建时替换特定值。例如,如果直到构建时才知道值,或者您想要重复使用具有不同变量的现有构建请求,则可能需要使用替代变量。Cloud Build 提供可用于触发器调用的构建的默认替代变量,例如映射到触发器名称或代码库名称的变量。您还可以定义自己的替代变量。如需了解详情,请参阅替代变量值

Bash 参数扩展

您可以将 bash 参数扩展应用于替代变量值。Bash 参数扩展允许您处理与现有变量关联的字符串。例如,您可以使用 bash 参数扩展将字母大写或替换子字符串。如需了解详情,请参阅 Bash 参数扩展

载荷绑定

您可以使用载荷绑定将触发器的事件载荷的一部分存储为替代变量。与载荷关联的变量称为绑定,可用于由推送和拉取事件调用的构建。您可以使用绑定来访问与构建相关的其他数据,例如拉取请求的作者。如需了解详情,请参阅载荷绑定

批准构建

您可以将触发器配置为不立即执行构建,而是将构建标记为待处理,直到获得批准。如果具有权限的用户批准待处理的构建,则构建将开始。如果批准被拒绝,则构建不会启动。如需了解如何配置需要批准的触发器,请参阅批准构建

构建状态通知

您可以配置 Cloud Build 通知程序以侦听来自 Pub/Sub cloud-builds 主题的构建事件更新。通知程序还可以过滤主题收到的消息,并将消息发送到所需的服务。Cloud Build 在 cloud-build-notifiers 存储库中提供并维护可部署的通知程序映像。您可以使用 Cloud Build 通知程序(例如 BigQueryHTTPSlack 或 101}SMTP创建您自己的通知程序

后续步骤