GitHub 触发器允许您基于 Git 推送和拉取请求自动构建,并在 GitHub 和 Google Cloud 控制台中查看构建结果。
本页介绍了如何使用 Cloud Build GitHub 应用创建 GitHub 触发器并从 GitHub 构建代码库。详细了解 Cloud Build 触发器和 Cloud Build 代码库。
准备工作
-
Enable the Cloud Build API.
- 按照连接到 GitHub 代码库中的说明安装 Cloud Build GitHub 应用。
创建 GitHub 触发器
控制台
如需使用 Google Cloud 控制台创建 GitHub 触发器,请执行以下操作:
打开 Google Cloud 控制台中的触发器页面。
从页面顶部的项目选择器下拉菜单中选择您的项目。
点击打开。
点击创建触发器。
输入以下触发器设置:
名称:输入触发器的名称。
区域:为触发器选择区域。
- 如果与触发器关联的 build 配置文件指定了专用池,Cloud Build 会使用该专用池运行 build。在这种情况下,您在触发器中指定的区域必须与您创建专用池的区域一致。
- 如果与触发器关联的 build 配置文件未指定专用池,Cloud Build 会使用默认池在与触发器相同的区域中运行 build。
说明(可选):输入触发器的说明。
事件:选择用于调用触发器的代码库事件。
推送到分支:设置触发器,以便基于对特定分支的提交启动构建。
推送新标记:将触发器设置为以基于包含特定标记的提交启动构建。
拉取请求:设置触发器,以便基于针对拉取请求进行的提交启动构建。
来源:选择第 2 代作为来源。
代码库:从可用代码库列表中,选择所需的代码库。如需关联新的代码库,请参阅关联到 GitHub 代码库。
分支或标记:指定要匹配分支或标记值的正则表达式。如需了解可接受的正则表达式语法,请参阅 RE2 语法。
评论控制:如果您选择了拉取请求(仅限 GitHub 应用)作为事件,请选择以下选项之一来控制构建是否将由触发器自动执行:
必需(所有者和协作者除外):代码库所有者或协作者创建或更新拉取请求后,触发器会自动执行构建。如果外部贡献者发起操作,则只有在所有者或协作者对拉取请求中的
/gcbrun
添加注释之后,触发器才会执行构建。必需:当代码库所有者或协作者创建或更新拉取请求,并在拉取请求说明或评论中添加
/gcbrun
时,触发器会自动执行构建。任何贡献者创建或更新拉取请求后,只有在所有者或协作者对拉取请求中的/gcbrun
添加注释之后,触发器才会执行构建。不需要:任何贡献者创建或更新拉取请求后,触发器将自动执行构建。
包含的文件(可选):如果更改影响至少一个文件,则会调用构建。
忽略的文件(可选):如果更改只影响被忽略的文件,则不会调用构建。
配置:选择位于远程代码库中的构建配置文件,或创建要用于构建的内嵌构建配置文件。
- 类型:选择要用于构建的配置类型。
- 自动检测:如果您的代码库中有
cloudbuild.yaml
或Dockerfile
,Cloud Build 会自动检测您的配置类型。 - Cloud Build 配置文件(yaml 或 json):为您的配置使用构建配置文件。
- Dockerfile:为您的配置使用
Dockerfile
。 - Buildpack:为您的配置使用 buildpack。
- 自动检测:如果您的代码库中有
位置:为您的配置指定位置。
- 代码库:如果您的配置文件位于远程代码库中,请提供构建配置文件的位置或
Dockerfile
目录,并为生成的映像提供名称。如果您的配置是Dockerfile
,则还可以选择提供构建的超时时间。提供了Dockerfile
和映像名称后,您会看到构建将执行的docker build
命令的预览。 - 内嵌:如果您选择了 Cloud Build 配置文件(yaml 或 json)作为配置选项,则可以指定内嵌构建配置。点击打开编辑器,使用 YAML 或 JSON 语法在 Google Cloud 控制台中编写您的构建配置文件。点击完成以保存您的构建配置。
- 代码库:如果您的配置文件位于远程代码库中,请提供构建配置文件的位置或
- 类型:选择要用于构建的配置类型。
替代变量(可选):如果您选择了 Cloud Build 配置文件作为构建配置选项,则您可以选择使用此字段定义特定于触发器的替代变量。例如,假设您要创建多个触发器,其中每个触发器都会将您的应用部署到特定环境。您可以在构建配置文件中指定将应用部署到某个环境,然后使用该字段定义替代变量,用于指定相应触发器应部署到哪个环境。如需了解如何在构建配置文件中指定替换值,请参阅替代变量值。
构建日志(可选):选中此复选框可将构建日志发送到 GitHub。如需了解如何查看构建日志,请参阅查看构建日志。
服务账号:选择调用触发器时使用的服务账号。如果您未选择服务账号,则使用默认的 Cloud Build 服务账号。
点击创建以保存您的构建触发器。
如需使用 gcloud
命令创建 GitHub 应用触发器,请参阅创建构建触发器的 gcloud
命令。
gcloud
如需使用 gcloud
命令创建 GitHub 触发器,请运行以下命令:
gcloud builds triggers create github \
--name=TRIGGER_NAME \
--repository=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME \
--branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
--build-config=BUILD_CONFIG_FILE \
--region=REGION
其中:
- TRIGGER_NAME 是触发器的名称。
- PROJECT_ID 是您的 Google Cloud 项目 ID。
- REGION 是触发器的区域。
- CONNECTION_NAME 是您的 GitHub 关联的名称。
- REPO_NAME 是代码库的名称
- BRANCH_PATTERN 是代码库中要在其上调用构建的分支名称。
- TAG_PATTERN 是代码库中要在其上调用构建的标记名称。
- BUILD_CONFIG_FILE 是构建配置文件的路径。
构建和查看更改
如需使用 GitHub 触发器进行构建,您需要推送更改并将其提交到关联的源代码库,或在拉取请求上配置构建。检查更改后,Cloud Build 将构建代码。
如要在 GitHub 上查看构建更改,请转到代码库中的检查标签页。
您将看到 Cloud Build 已构建您的更改。您还将看到其他构建详情,例如构建代码所花费的时间和构建 ID。
如需在 Cloud Build 中查看构建更改,请点击在 Google Cloud Build 中查看更多详情。Google Cloud 控制台中的构建详情页面将打开,您可以在其中查看状态、日志和构建步骤等构建信息。
数据共享
从 Cloud Build 发送到 GitHub 的数据有助于您按名称识别触发器,并在 GitHub 上查看构建结果。
以下数据目前在 Cloud Build 和 GitHub 之间共享:
- Cloud 项目 ID
- 触发器名称
- 构建日志
如果您是在 2020 年 8 月之前创建的触发器,则您的项目可能未启用数据共享功能。如需为项目中的所有 GitHub 触发器启用数据共享,请点击 Cloud Build 数据共享标签页上的启用。
如果为 GitHub 代码库启用了必需的状态检查,则启用数据共享可能会暂时中断状态检查。您可以通过以下方式调整状态检查配置以查找触发器名称:
- 在 GitHub 代码库中停用任何特定于 Cloud Build 的必需检查
- 确保在 Cloud Build 中启用数据共享功能
- 在 Cloud Build 中执行一项新构建,将状态发布到您的代码库
- 重新启用必需的状态检查,选择触发器名称
后续步骤
- 了解如何创建和管理构建触发器。
- 了解如何在 Compute Engine 上执行蓝绿部署。