Cloud Build 触发器

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

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

代码库事件触发器

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

GitHub 触发器

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

GitHub Enterprise 触发器

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

GitLab Enterprise Edition 触发器

您可以为托管在 GitLab Enterprise Edition 实例上的代码库创建触发器,包括托管在专用网络中的实例。GitLab Enterprise Edition 触发器可用于执行构建,以响应与您的 GitLab Enterprise Edition 代码库关联的提交推送或拉取请求。如需了解详情,请参阅从 GitLab Enterprise Edition 构建代码库

Bitbucket Server 触发器

您可以为托管在 Bitbucket Server 实例上的代码库(包括托管在本地环境中的实例)创建触发器。您可以通过多个主机连接多次将 Bitbucket Server 代码库连接到 Cloud Build。如需详细了解如何创建触发器以执行构建以响应事件,请参阅从 Bitbucket Server 构建代码库

Bitbucket 数据中心触发器

您可以为托管在 Bitbucket Data Center 实例上的代码库(包括托管在本地环境中的实例)创建触发器。Bitbucket Data Center 触发器可用于执行构建,以响应提交推送或拉取请求等事件。如需了解详情,请参阅从 Bitbucket 数据中心构建代码库

Bitbucket Cloud 触发器

您可以为托管在 Bitbucket Cloud 中的代码库创建触发器。Bitbucket Cloud 触发器可用于执行构建以响应事件,例如提交推送或拉取请求。如需了解详情,请参阅从 Bitbucket Cloud 构建代码库

手动触发器

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

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。创建 webhook 触发器时,您还可以在触发器上以内嵌方式定义 build 配置,以控制在构建时触发器克隆哪些代码库,而不是明确指定源代码。如需了解详情,请参阅自动执行构建以响应网络钩子事件。此外,如需了解如何使用 webhook 触发器基于特定的 SCM 构建代码库,请参阅从 Bitbucket Server 构建代码库从 Bitbucket Cloud 构建代码库从 GitLab 构建代码库

触发器功能

Cloud Build 触发器提供的功能可让您精细控制构建的执行方式。本部分介绍了与触发器相关的各种功能。

预定的手动触发器

您可以安排手动触发器以按照预定义的时间表自动执行构建。例如,您可能希望将安排的触发器配置为每周六早上 6:00 运行构建。要安排构建,您可以创建手动触发器并使用 Cloud Scheduler 调用触发器。如需了解详情,请参阅安排构建

过滤事件

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

替代变量

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

Bash 参数扩展

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

载荷绑定

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

审批

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

构建状态通知

您可以配置 Cloud Build 通知程序,以监听 Pub/Sub cloud-builds 主题中的构建事件更新。通知程序还可以过滤主题接收的消息,并将消息发送到连接的服务。Cloud Build 在 cloud-build-notifiers 代码库中提供和维护可部署的通知程序映像。您可以使用 Cloud Build 通知程序(如 BigQueryHTTPSlackSMTP)配置通知,或者创建自己的通知程序

后续步骤