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 企业版触发器

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

Bitbucket Server 触发器

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

Bitbucket 数据中心触发器

您可以为托管在 Bitbucket Data Center 实例上的代码库(包括托管在本地环境中的实例)创建触发器。Bitbucket 数据中心触发器可用于执行构建,以响应提交推送或拉取请求等事件。如需了解详情,请参阅从 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 触发器来执行构建以响应 webhook。通过发送到自定义网址的网络钩子事件,您可以将外部系统和外部源代码管理系统 (SCM)(如 Bitbucket.com、Bitbucket Server 或 GitLab)直接连接到 Cloud Build。创建 webhook 触发器时,您还可以在触发器上以内嵌方式定义 build 配置,以便在构建时控制触发器克隆的代码库,而无需明确指定来源。如需了解详情,请参阅自动构建以响应 webhook 事件。此外,如需了解如何使用 webhook 触发器从特定 SCM 构建代码库,请参阅从 Bitbucket Server 构建代码库从 Bitbucket Cloud 构建代码库从 GitLab 构建代码库

触发器功能

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

已安排的手动触发器

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

过滤事件

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

替代变量

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

Bash 参数扩展

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

载荷绑定

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

审批

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

构建状态通知

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

后续步骤