このページでは、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 を送信します。リポジトリは、複数のホスト接続で複数回接続することもできます。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 デプロイを実行する方法を学習する。