从 GitHub Enterprise 构建代码库

借助 Cloud Build,您可以在 GitHub Enterprise 实例上创建触发器。本页面介绍了如何使用 GitHub Enterprise 触发器调用构建,以响应来自 GitHub Enterprise 代码库的提交或拉取请求。

详细了解 Cloud Build 触发器Cloud Build 代码库

准备工作

  • 启用 Cloud Build and Secret Manager API。

    启用 API

创建 GitHub Enterprise 触发器

本部分介绍如何创建触发器并将其与 GitHub Enterprise 安装关联。 如果您想在专用网络中使用 GitHub Enterprise 触发器,请参阅在专用网络中从 GitHub Enterprise 构建代码库以获取进一步说明。

控制台

如需使用 Google Cloud 控制台创建 GitHub Enterprise 触发器,请执行以下操作:

  1. 在 Google Cloud 控制台中打开触发器页面。

    打开“触发器”页面

  2. 从页面顶部的项目选择器下拉菜单中选择您的项目。

  3. 点击打开

  4. 点击创建触发器

  5. 输入以下触发器设置:

    • 名称:输入触发器的名称。

    • 区域:为触发器选择区域

      • 如果与触发器关联的构建配置文件指定了专用池,则 Cloud Build 会使用专用池来运行构建。在这种情况下,您在触发器中指定的区域必须与创建专用池的区域一致。
      • 如果与触发器关联的构建配置文件指定专用池,则 Cloud Build 会使用默认池在触发器所在的区域中运行构建。
    • 说明(可选):输入触发器的说明。

    • 事件:选择用于调用触发器的代码库事件。

      • 推送到分支:设置触发器,以便基于对特定分支的提交启动构建。

      • 推送新标记:将触发器设置为以基于包含特定标记的提交启动构建。

      • 拉取请求:设置触发器以基于对拉取请求的提交启动构建。

    • 来源:选择第 2 代作为来源。

      • 代码库:从可用代码库列表中,选择所需的代码库。如需连接新的代码库,请参阅连接到 GitHub Enterprise 代码库

      • 分支标记:指定要匹配分支或标记值的正则表达式。如需了解可接受的正则表达式语法,请参阅 RE2 语法

      • 评论控制:如果您选择了拉取请求(仅限 GitHub 应用)作为事件,请选择以下选项之一来控制构建是否将由触发器自动执行:

        • 必需(所有者和协作者除外):代码库所有者或协作者创建或更新拉取请求后,触发器会自动执行构建。如果外部贡献者发起操作,则只有在所有者或协作者对拉取请求中的 /gcbrun 添加注释之后,触发器才会执行构建。

        • 必需:如果代码库所有者或协作者在拉取请求说明或注释中使用 /gcbrun 创建或更新拉取请求,触发器会自动执行构建。在任何贡献者创建或更新拉取请求时,只有在所有者或协作者对拉取请求添加注释 /gcbrun 后,系统才会执行构建。

        • 不需要:任何贡献者创建或更新拉取请求后,触发器将自动执行构建。

    • 包含的文件(可选):如果更改影响至少一个文件,则会调用构建。

    • 忽略的文件(可选):如果更改只影响被忽略的文件,则不会调用构建。

    • 配置:选择位于远程代码库中的构建配置文件,或创建要用于构建的内嵌构建配置文件。

      • 类型:选择要用于构建的配置类型。
        • 已自动检测 (Autodetected):如果您的代码库中有 cloudbuild.yamlDockerfile,则 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 服务账号

  6. 点击创建以保存您的构建触发器。

如需使用 gcloud 命令创建 GitHub 应用触发器,请参阅创建构建触发器gcloud 命令。

gcloud

如需使用 gcloud 命令创建 GitHub Enterprise 触发器,请运行以下命令:

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 Enterprise 连接的名称。
  • REPO_NAME 是代码库的名称
  • BRANCH_PATTERN 是代码库中要在其上调用构建的分支名称。
  • TAG_PATTERN 是代码库中要在其上调用构建的标记名称。
  • BUILD_CONFIG_FILE 是构建配置文件的路径。

数据共享

从 Cloud Build 发送到 GitHub Enterprise 的数据可帮助您按名称识别触发器,并在 GitHub Enterprise 上查看构建结果。

目前,Cloud Build 和 GitHub Enterprise 之间共享以下数据:

  • Cloud 项目 ID
  • 触发器名称
  • 构建日志

如果您是在 2020 年 8 月之前创建的触发器,则您的项目可能未启用数据共享功能。您可以通过点击Cloud Build 数据共享标签页上的启用,为项目中的所有 GitHub Enterprise 触发器启用数据共享。

如果您为 GitHub Enterprise 代码库启用了必需的状态检查,启用数据共享可能会暂时破坏状态检查。您可以通过以下方式调整状态检查配置以查找触发器名称:

  • 对 GitHub Enterprise 代码库停用任何特定于 Cloud Build 的必需检查
  • 确保在 Cloud Build 中启用数据共享功能
  • 在 Cloud Build 中执行一项新构建,将状态发布到您的代码库
  • 重新启用必需的状态检查,选择触发器名称

后续步骤