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 企业版实例(包括托管在专用网络中的实例)上的代码库创建触发器。GitLab Enterprise Edition 触发器可用于执行构建,以响应与您的 GitLab Enterprise Edition 代码库关联的提交推送或拉取请求。如需了解详情,请参阅从 GitLab Enterprise Edition 构建代码库。
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
)匹配时才使用过滤条件执行构建。另外,Pub/Sub 触发器可以配置为订阅任何 Pub/Sub 主题。如需了解详情,请参阅自动构建以响应 Pub/Sub 事件。
webhook 触发器
您可以创建 webhook 触发器以执行构建以响应 webhook。通过发送到自定义网址的 Webhook 事件,您可以将外部系统和外部源代码管理系统 (SCM)(例如 Bitbucket.com、Bitbucket Server 或 GitLab)直接连接到 Cloud Build。创建 webhook 触发器时,您还可以在触发器上以内嵌方式定义构建配置,以控制构建期间触发器克隆的代码库,而不是明确指定源代码。如需了解详情,请参阅自动响应 webhook 事件进行构建。此外,如需了解如何使用网络钩子触发器从特定 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 通知程序(例如 BigQuery、HTTP、Slack 或 SMTP)或创建您自己的通知程序来配置通知。
后续步骤
- 了解如何创建和管理构建触发器。