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 企业版 版本触发器可用于执行构建,以响应提交推送或 与您的 GitLab Enterprise Edition 代码库关联的拉取请求。接收者 了解详情,请参阅 从 GitLab 企业版构建代码库

Bitbucket Server 触发器

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

Bitbucket 数据中心触发器

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

Bitbucket Cloud 触发器

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

手动触发器

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

Pub/Sub 触发器

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

webhook 触发器

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

触发器功能

Cloud Build 触发器提供的功能可让您 可以控制构建作业的执行方式。本部分将介绍 与触发器相关联的功能。

已安排的手动触发器

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

过滤事件

Cloud Build 使用 将通用表达式语言 (CEL) 与 变量 build。 要访问的构建资源 与构建事件关联的字段,例如触发器 ID、映像列表或 替换值。您可以使用 filter 字符串来过滤 创建配置文件 Build 资源。学习内容 请参阅使用 CEL 过滤构建事件

替代变量

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

Bash 参数扩展

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

载荷绑定

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

批准

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

构建状态通知

您可以配置 Cloud Build 通知程序以监听构建事件 有关 Pub/Sub cloud-builds 主题的最新动态。通知程序可以 同时过滤该主题收到的消息, 服务。Cloud Build 在 cloud-build-notifiers 存储库中提供并维护可部署的通知程序映像。您可以使用 Cloud Build 通知程序配置通知 (例如 BigQuery), HTTP SlackSMTP创建自己的通知程序

后续步骤