从 GitHub Enterprise 构建代码库

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

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

准备工作

  • 启用 Cloud Build and Secret Manager API。

    启用 API

创建 GitHub Enterprise 触发器

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

控制台

如需了解如何使用 GitHub 触发器创建触发器,请参阅创建 GitHub 触发器

API

以下 JSON 模板展示了如何通过命令行创建触发器:

  {
      "filename": "cloudbuild.yaml",
      "name": "trigger-name",
      "description": "trigger-description",
      "github": {
          "push": {
              "branch": ".*",
          },
          "owner": "owner",
          "name": "repo-name",
      "enterprise_config_resource_name": "projects/project-number/githubEnterpriseConfigs/id"
      },
      "include_build_logs": "INCLUDE_BUILD_LOGS_WITH_STATUS"
  }

其中:

  • trigger-name 是触发器的名称
  • trigger-description 是触发器的说明
  • owner 是 GitHub 代码库的所有者。
  • repo-name 是 GitHub 代码库的名称。
  • project-number 是 Cloud 项目的编号。
  • id 是您的 GitHubEnterpriseConfig 的 ID。
  • [可选] _include_build_logs 是一个字段,您可以指定以显示代码库的构建日志。来自 GitHub 和 GitHub Enterprise 代码库的构建支持此标志。

在终端中输入以下 curl 命令,其中 project-id 是 Cloud 项目 ID:

  curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" https://cloudbuild.googleapis.com/v1/projects/project-id/triggers -d @trigger.json

您的触发器现已创建。

数据共享

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

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

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

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

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

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

后续步骤