Cloud Build を使用すると、Bitbucket Cloud でホストされているリポジトリからビルドするトリガーを作成できます。Bitbucket Cloud リポジトリに関連付けられた commit push やマージ リクエストなどのイベントに応じてビルドを実行できます。
このページでは、Bitbucket Cloud インスタンスでビルドトリガーを有効にする方法について説明します。詳細については、Cloud Build トリガーと Cloud Build リポジトリをご覧ください。
始める前に
手順に沿って Bitbucket Cloud ホストに接続します。-
Enable the Cloud Build and Secret Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Bitbucket Cloud リポジトリのトリガーを作成するには、 Google Cloud とリポジトリの間に接続が必要です。 Google Cloudの Bitbucket Cloud アプリを使用して接続を作成するには、Bitbucket Cloud リポジトリに接続するをご覧ください。
Bitbucket Cloud トリガーを作成する
このセクションでは、トリガーを作成して Bitbucket Cloud インストールにリンクする方法について説明します。
Google Cloud コンソール
Google Cloud コンソールを使用して Bitbucket Cloud トリガーを作成するには、次の操作を行います。
Google Cloud コンソールで [トリガー] ページを開きます。
Google Cloud プロジェクトを選択し、[開く] をクリックします。
[トリガーを作成] をクリックします。
次のトリガー設定を入力します。
名前: トリガーの名前を入力します。
リージョン: トリガーのリージョンを選択します。
* If the build config file associated with the trigger specifies a [private pool](/build/docs/private-pools/private-pools-overview), then Cloud Build uses the private pool to run your build. In this case, the region you specify in your trigger must match the region where you created your private pool. * If the build config file associated with the trigger **doesn't** specify a private pool, then Cloud Build uses the default pool to run your build in the same region as your trigger.
説明(省略可): トリガーの説明を入力します。
イベント: トリガーを起動するリポジトリ イベントを選択します。
ブランチに push する: 特定のブランチに対して commit が行われたときにビルドを開始するトリガーを設定します。
新しいタグを push する: 特定のタグを含む commit が行われたときにビルドを開始するトリガーを設定します。
pull リクエスト: pull リクエストの commit が行われたときにビルドを開始するトリガーを設定します。
ソース: Bitbucket Cloud リポジトリに関する情報を構成します。
リポジトリ サービス: Cloud Build リポジトリを選択します。
リポジトリの生成: ソースとして [Developer Connect] を選択します。
リポジトリ: 使用可能なリポジトリのリストからリポジトリを選択します。
ブランチまたはタグ: ブランチまたはタグの値にマッチングさせる正規表現を指定します。有効な正規表現の構文については、RE2 構文をご覧ください。
コメント制御: イベントとして pull リクエストを選択した場合は、ビルドをトリガーによって自動的に実行するかどうか、次のいずれかのオプションを選択します。
必須(オーナーと共同編集者を除く): 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 コンソールで [エディタを開く] をクリックして、YAML または JSON 構文でビルド構成ファイルを書き込みます。[完了] をクリックしてビルド構成ファイルを保存します。
[作成] をクリックして Bitbucket Cloud トリガーを作成します。
gcloud CLI
gcloud
コマンドを使用して Bitbucket Cloud トリガーを作成するには、次のコマンドを実行します。
gcloud alpha builds triggers create developer connect
--name=TRIGGER_NAME \
--git-repository-link=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/gitRepositoryLinks/REPO_NAME \
--branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
--build-config=BUILD_CONFIG_FILE \
--region=REGION \
--service-account=SERVICE-ACCOUNT
ここで
- TRIGGER_NAME はトリガーの名前です。
- PROJECT_ID は Google Cloud プロジェクト ID です。
- REGION はトリガーのリージョンです。
- CONNECTION_NAME は、Bitbucket Cloud 接続の名前です。
- GIT_REPOSITORY_LINK は Git リポジトリへのリンクです。
- BRANCH_PATTERN は、ビルドを呼び出すリポジトリ内のブランチ名です。
- TAG_PATTERN は、ビルドを呼び出すリポジトリ内のタグ名です。
- BUILD_CONFIG_FILE はビルド構成ファイルのパスです。
- SERVICE-ACCOUNT は、トリガーとビルド オペレーションに使用するサービス アカウントです。
API
API を使用して Bitbucket Cloud トリガーを作成するには、次の 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"
"comment_control": "COMMENT_SETTING"
}
}
ここで
- REPO_SLUG は、Bitbucket Server リポジトリのスラッグです。詳細については、リポジトリ スラグに関する Bitbucket のガイドをご覧ください。
- PROJECT_KEY は、Bitbucket Server プロジェクトのキーです。 PROJECT_KEY は、大文字と小文字が区別されます。
- BRANCH_NAME は、特定のブランチでビルドのトリガーを設定する場合のブランチの正規表現です。
- TAG_NAME は、特定のタグを作成するようにトリガーを設定する場合の正規表現です。
- PROJECT_NUMBER は Cloud プロジェクトのプロジェクト番号です。
- REGION は、Bitbucket Server 構成に関連付けられたリージョンです。
- ID は、BitbucketServerConfig の ID です。
- COMMENT_SETTING は、ビルドトリガーが、実行するビルドのコメントに
/gcbrun
を必要とするかどうかを制御する設定です。詳細については、commentControl をご覧ください。
ターミナルで、次の 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/triggers -d @trigger.json
ここで
- PROJECT_NUMBER は Google Cloud プロジェクト番号です。
- PROJECT_ID は Google Cloud プロジェクト ID です。
Terraform
ビルドトリガーを作成し、Developer Connect を使用して Bitbucket Cloud インストールに接続する Terraform コードのサンプルについては、Terraform ドキュメントの次のトピックをご覧ください。
データ共有
Cloud Build から Bitbucket Cloud に送信されたデータは、トリガーを名前で識別し、Bitbucket Cloud リポジトリでビルドの結果を確認する際に役立ちます。
次のデータは、Cloud Build と Bitbucket Cloud ホストの間で共有されます。
- Google Cloud プロジェクト ID
- トリガーの名前
次のステップ
- トリガーを作成および管理する方法を学習する。
- 手動でビルドを開始する方法を確認する。
- ビルド結果を表示する方法を学習する。
- Compute Engine で Blue/Green デプロイを実行する方法を学習する。