Bitbucket データセンターからリポジトリをビルドする

Cloud Build を使用すると、Bitbucket データセンターでホストされているリポジトリからビルドするトリガーを作成できます。これにより、Bitbucket データセンター リポジトリに関連付けられた push の commit や pull リクエストなどのイベントに対応してビルドを実行できます。

このページでは、Bitbucket データセンター インスタンスでトリガー機能を有効にする方法について説明します。

準備

  • Enable the Cloud Build, Secret Manager, and Compute Engine APIs.

    Enable the APIs

Bitbucket データセンター トリガーを作成する

このセクションでは、Bitbucket データセンター リポジトリを Cloud Build に接続し、接続されたリポジトリに自動的にビルドを起動するトリガーを作成する方法について説明します。プライベート ネットワークで Bitbucket データセンター トリガーを使用する場合は、プライベート ネットワークで Bitbucket データセンターからのリポジトリのビルドをご覧ください。

コンソール

Google Cloud コンソールを使用して Bitbucket データセンター トリガーを作成するには:

  1. [トリガー] ページを開く

    [トリガー] ページを開く

  2. ページ上部でプロジェクトを選択し、[開く] をクリックします。

  3. [トリガーを作成] をクリックします。

  4. 次のトリガー設定を入力します。

    • 名前: トリガーの名前。

    • リージョン: トリガーのリージョンを選択します。

      • リージョンとしてグローバルを選択した場合、Cloud Build はビルドを実行するためにデフォルトのプールを使用します。
      • 非グローバル リージョンを選択して、トリガーに関連付けられたビルド構成ファイルでプライベート プールを指定すると、Cloud Build はプライベート プールを使用してビルドを実行します。この場合、トリガーで指定するリージョンは、プライベート プールを作成したリージョンと一致する必要があります。
      • 非グローバル リージョンを選択し、トリガーに関連付けられたビルド構成ファイルでプライベート プールが指定されていない場合、Cloud Build はデフォルトのプールを使用してトリガーと同じリージョンでビルドを実行します。
    • 説明(省略可): トリガーの説明。

    • イベント: トリガーを起動するリポジトリ イベントを選択します。

      • ブランチに push する: 特定のブランチに対して commit が行われたときにビルドを開始するトリガーを設定します。

      • 新しいタグを push する: 特定のタグを含む commit が行われたときにビルドを開始するトリガーを設定します。

      • pull リクエスト: pull リクエストの commit が行われたときにビルドを開始するトリガーを設定します。

    • ソース: ソースとして [第 1 世代] を選択します。

      • リポジトリ: 使用可能なリポジトリのリストからリポジトリを選択します。新しいリポジトリに接続するには、Bitbucket データセンター リポジトリに接続するをご覧ください。

      • ブランチまたはタグ: ブランチまたはタグの値にマッチングさせる正規表現を指定します。

      • コメント制御: イベントとして pull リクエストを選択した場合は、ビルドをトリガーによって自動的に実行するかどうか、次のいずれかのオプションを選択します。

      • Required except for owners and collaborators: pull リクエストがリポジトリ所有者または共同編集者によって作成または更新されると、ビルドが自動的にトリガーによって実行されます。外部の投稿者がアクションを開始する場合、その pull リクエストで所有者または共同編集者が /gcbrun にコメントした後にのみビルドが実行されます。

      • 必須: 投稿者を問わず pull リクエストが作成または更新されると、所有者または共同編集者が pull リクエストに /gcbrun とコメントした後にのみビルドが実行されます。ビルドは、pull リクエストが変更されるたびに実行されます。

      • 不要: 投稿者を問わず pull リクエストが作成または更新されると、ビルドが自動的にトリガーで実行されます。

    • 構成: リポジトリにあるビルド構成ファイルを選択するか、トリガーでインライン ビルドを構成します。

    • タイプ: ビルドに使用する構成のタイプを選択します。

      • Cloud Build 構成ファイル(yaml または json): 構成にビルド構成ファイルを使用します。
      • Dockerfile: 構成には Dockerfile を使用します。
    • 場所: 構成の場所を指定します。

      • リポジトリ: 構成ファイルがリポジトリにある場合は、ビルド構成ファイルまたは Dockerfile ディレクトリの場所と生成されたイメージの名前を指定します。構成が Dockerfile の場合は、必要に応じてビルドのタイムアウトを指定できます。Dockerfile とイメージ名を指定すると、ビルドが実行される docker build コマンドのプレビューが表示されます。

      • インライン: 構成オプションとして Cloud Build 構成ファイル(yaml または json)を選択した場合、インライン ビルド構成を指定できます。Google Cloud Console で [エディタを開く] をクリックして、YAML または JSON 構文でビルド構成ファイルを書き込みます。[完了] をクリックしてビルド構成ファイルを保存します。

  5. [作成] をクリックして Bitbucket データセンター トリガーを作成します。

gcloud

gcloud コマンドを使用して Bitbucket データセンター トリガーを作成するには、ターミナルで次の「gcloud builds triggers create bitbucketserver」コマンドを実行する必要があります。

gcloud 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 データセンター リポジトリのスラッグです。
  • PROJECT_NUMBER は Google 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 データセンター リポジトリのスラッグです。
  • PROJECT_KEY は、Bitbucket データセンター プロジェクトのキーです。
  • BRANCH_NAME は、特定のブランチをビルドするトリガーを設定する場合のブランチに一致する正規表現です。
  • TAG_NAME は、特定のタグを作成するようにトリガーを設定する場合のタグに一致する正規表現です。
  • PROJECT_NUMBER は Google Cloud プロジェクトのプロジェクト番号です。
  • REGION は、Bitbucket データセンターの構成に関連付けられたリージョンです。
  • ID は、BitbucketServerConfig の ID です。

ターミナルで次の curl コマンドを入力します。ここで、PROJECT_ID は実際の Google 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 データセンター ホストの間で共有されます。

  • Google Cloud プロジェクト ID
  • トリガーの名前

Bitbucket データセンターではデータ共有が自動的に有効になります。

次のステップ