从 Bitbucket 数据中心构建代码库

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

借助 Cloud Build,您可以创建基于 Bitbucket 数据中心托管的代码库进行构建的触发器,从而执行构建以响应与 Bitbucket 数据中心代码库关联的提交推送或拉取请求等事件。

本页面介绍如何在 Bitbucket 数据中心实例上启用触发器功能。

准备工作

  • 启用 Cloud Build, Secret Manager, and Compute Engine API。

    启用 API

创建 Bitbucket 数据中心触发器

本部分介绍如何将您的 Bitbucket 数据中心代码库关联到 Cloud Build,以及如何创建触发器以自动在关联的代码库上调用构建。如果您想在专用网络中使用 Bitbucket 数据中心触发器,请参阅在专用网络中从 Bitbucket 数据中心构建代码库

控制台

如需使用 Google Cloud 控制台创建 Bitbucket 数据中心触发器,请执行以下操作:

  1. 打开触发器页面

    打开“触发器”页面

  2. 从页面顶部选择您的项目,然后点击打开

  3. 点击创建触发器

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

    • 名称:触发器的名称。

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

      • 如果选择全球作为区域,则 Cloud Build 会使用默认池运行构建。
      • 如果您选择非全球区域,并且与触发器关联的构建配置文件指定专用池,则 Cloud Build 会使用专用池运行构建。在这种情况下,您在触发器中指定的区域必须与您创建专用池的区域一致。
      • 如果您选择非全球区域,并且与触发器关联的构建配置文件没有指定专用池,则 Cloud Build 会使用默认池在触发器所在的区域中运行构建。
    • 说明(可选):触发器的说明。

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

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

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

      • 拉取请求(不支持 Cloud Source Repositories):设置触发器,以便基于针对拉取请求进行的提交启动构建。

    • 来源:选择在 Bitbucket 数据中心触发器运行时要构建的代码库。

    • 修订版本:选择要在 Bitbucket 数据中心触发器运行时构建的分支或标记。

    • 分支:设置一个触发器以构建此分支。

    • 标记:设置一个触发器以构建此标记。

    • 配置:选择位于您的代码库中的构建配置文件,或在触发器上以内嵌方式配置构建。

    • 类型:选择要用于构建的配置类型。

      • Cloud Build 配置文件(yaml 或 json):为您的配置使用构建配置文件。
      • Dockerfile:为您的配置使用 Dockerfile
    • 位置:为您的配置指定位置。

      • 代码库:如果您的配置文件位于代码库中,请提供构建配置文件的位置或 Dockerfile 目录以及生成的映像的名称。如果您的配置是 Dockerfile,则还可以选择提供构建的超时时间。提供了 Dockerfile 和映像名称后,您会看到构建将执行的 docker build 命令的预览。

      • 内嵌:如果您选择了 Cloud Build 配置文件(yaml 或 json)作为配置选项,则可以指定内嵌构建配置。点击打开编辑器,使用 YAML 或 JSON 语法在 Google Cloud Console 中编写构建配置文件。点击完成以保存您的构建配置。

  5. 点击创建以创建 Bitbucket 数据中心触发器。

gcloud

如需使用 gcloud 命令创建 Bitbucket 数据中心触发器,您需要在终端中运行以下 gcloud alpha builds triggers create bitbucketserver 命令:

gcloud alpha builds triggers create bitbucketserver
--name=TRIGGER_NAME \
--project-key=PROJECT_KEY \
--repo-slug=REPO_SLUG \
--bitbucket-server-config-resource=projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/ID \
--branch-pattern=BRANCH_NAME \ # --tag-pattern=TAG_NAME
--build-config=BUILD_CONFIG

其中:

  • TRIGGER_NAME 是触发器的名称。
  • PROJECT_KEY 是您的 Bitbucket 数据中心项目的密钥。
  • REPO_SLUG 是您的 Bitbucket 数据中心代码库的 slug
  • PROJECT_NUMBER 是您的 Cloud 项目的项目编号。
  • REGION 是与您的 Bitbucket 数据中心配置相关联的区域
  • ID 是您的 BitbucketServerConfig 的 ID。
  • 如果您要设置您的触发器来构建特定分支,则 BRANCH_NAME 是您的分支的正则表达式。
  • 如果您要设置您的触发器来构建特定标记,则 TAG_NAME 是您的标记的正则表达式。
  • BUILD_CONFIG 是构建配置文件的路径。

API

如需使用 API 创建 Bitbucket 数据中心触发器,请使用以下 JSON 模板。

    {
      "filename": "cloudbuild.yaml",
      "name": "curl-trigger",
      "description": "curl trigger",
      "bitbucket_server_trigger_config": {
          "repo_slug": REPO_SLUG,
          "project_key": PROJECT_KEY,
          "push": {
             "branch": BRANCH_NAME # "tag": TAG_NAME
          },
          "bitbucket_server_config_resource": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/ID"
      }
  }

其中:

  • REPO_SLUG 是您的 Bitbucket 数据中心代码库的 slug
  • PROJECT_KEY 是您的 Bitbucket 数据中心项目的密钥。
  • 如果您要设置您的触发器来构建特定分支,则 BRANCH_NAME 是您的分支的正则表达式。
  • 如果您要设置您的触发器来构建特定标记,则 TAG_NAME 是您的标记的正则表达式。
  • PROJECT_NUMBER 是您的 Cloud 项目的项目编号。
  • REGION 是与您的 Bitbucket Server 配置相关联的区域
  • ID 是您的 BitbucketServerConfig 的 ID。

在您的终端中输入以下 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 发送到 Bitbucket 数据中心的数据可帮助您按名称识别触发器并在 Bitbucket 数据中心查看构建结果。

Cloud Build 和 Bitbucket 数据中心目前共享以下数据:

  • Cloud 项目 ID
  • 触发器名称

系统会自动为 Bitbucket 数据中心启用数据共享。

后续步骤