このページでは、Bitbucket Server リポジトリを Cloud Build に接続する方法について説明します。
準備
-
Enable the Cloud Build, Secret Manager, and Compute Engine APIs.
- リポジトリを接続する前に、手順に沿ってBitbucket Server ホストを接続してください。
Bitbucket Server リポジトリに接続する
コンソール
Google Cloud コンソールを使用して Bitbucket Server リポジトリを Cloud Build に接続するには:
Google Cloud コンソールで [リポジトリ] ページを開きます。
ページの上部で、[第 1 世代] タブを選択します。
[リポジトリを接続] をクリックします。
[Bitbucket Server] を選択します。
[リポジトリを接続] パネルが表示されます。Bitbucket Server リポジトリを接続するには、次の手順を行います。
[リージョン]: 接続が存在するリージョンを選択します。
[ソースコード管理プロバイダの選択] で [Bitbucket Server] を選択します。
[ホスト接続]: プルダウン メニューからホスト接続の名前を選択します。
[続行] をクリックします。
[リポジトリを選択] で、Cloud Build に接続する Bitbucket Server リポジトリを選択します。
Bitbucket Server アカウントとリポジトリを選択したら、同意の免責条項を読み、横にあるチェックボックスをオンにして、提示された利用規約に同意することを表明します。
[接続] をクリックして、リポジトリを接続します。
リポジトリが接続されると、Cloud Build は Bitbucket Server インスタンスのリポジトリに Webhook を構成します。次に、リポジトリを変更したときに、リポジトリは対応する Bitbucket Server トリガーを呼び出す Webhook を送信します。1 つのリポジトリを複数のホスト接続で複数回接続することもできます。Webhook の管理方法については、Webhook を管理するをご覧ください。
Webhook を見つけるには、Webhook ID が必要です。接続した各リポジトリの Webhook ID は、
BitbucketServerConfig
で確認できます。次のコマンドを入力して、Webhook ID を取得します。
gcloud alpha builds enterprise-config bitbucketserver describe CONFIG_NAME --region=REGION
ここで
- CONFIG_NAME は、Bitbucket Server 構成の名前です。
- REGION は、Bitbucket Server ホスト接続のリージョンです。
[完了] をクリックします。必要に応じて [トリガーを作成する] をクリックして、トリガーを作成します。
API
API を使用して Bitbucket Server リポジトリを Cloud Build に接続するには、次の手順を行います。
次の JSON テンプレートを使用してリポジトリを接続します。
{ "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "requests": { "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "bitbucketServerConnectedRepository": { "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "repo": { "projectKey": "PROJECT_KEY", "repoSlug": "REPO_SLUG" } } } }
ここで
- PROJECT_NUMBER は Cloud プロジェクトのプロジェクト番号です。
- REGION は、Bitbucket Server 構成に関連付けられたリージョンです。
- BITBUCKET_SERVER_CONFIG_NAME は、Bitbucket Server 構成の名前です。
- PROJECT_KEY は、Bitbucket Server プロジェクトのキーです。
個人用リポジトリを接続する場合、プロジェクト キーは、ユーザー名の前にチルダ(
~
)記号が含まれている必要があります。例:~${USERNAME}
ホスト リポジトリの完全な URL は、「https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}
」のようになります。 - REPO_SLUG は、Bitbucket Server リポジトリのスラッグです。
ターミナルで、次の
curl
コマンドを入力します。curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME/connectedRepositories:batchCreate -d @requests.json
ここで
- PROJECT_NUMBER は Cloud プロジェクト番号です。
- PROJECT_ID は Cloud プロジェクト ID です。
- REGION は、Bitbucket Server 構成に関連付けられたリージョンです。
- BITBUCKET_SERVER_CONFIG_NAME は、Bitbucket Server 構成の名前です。
成功すると、レスポンスの本文には新しく作成された Operation のインスタンスが含まれます。
ターミナルで、次の
curl
コマンドを入力します。curl -X GET -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
ここで
- PROJECT_NUMBER は Cloud プロジェクト番号です。
- PROJECT_ID は Cloud プロジェクト ID です。
- REGION は、Bitbucket Server 構成に関連付けられたリージョンです。
- OPERATION_ID は、Bitbucket Server 構成の作成オペレーションの ID です。オペレーション ID は、レスポンスの
name
フィールドで確認できます。レスポンスのname
フィールドの形式は次のようになります。projects/project-id/locations/region/operations/operation-id
オペレーションが完了したことを示す
done: true
がレスポンスに含まれるまで、GetOperation
API コマンドを実行したままにする必要が生じる場合があります。Bitbucket Server リポジトリが正常に接続されている場合は、接続されたリポジトリをresponse.bitbucketServerConnectedRepositories
フィールドで確認できます。正常に作成されなかった場合は、error
フィールドで詳細なエラーレポートを確認してください。
次のステップ
- Bitbucket サーバーからリポジトリを構築する方法を学習する。
- プライベート ネットワークに Bitbucket Server からリポジトリをビルドする方法を学習する。
- Compute Engine で Blue/Green デプロイを実行する方法を学習する。