Cloud Build トリガー

Cloud Build は、ビルドトリガーを使用して CI / CD の自動化を有効にします。 新しい commit がリポジトリに push されたときや、pull リクエストが開始されたときなどでの受信イベントをリッスンし、新しいイベントが生じたときにビルドを自動的に実行するようにトリガーを構成できます。ソース リポジトリが変更された場合や、特定の条件に一致する変更があった場合にコードをビルドするようにトリガーを構成することもできます。

このページでは、トリガーのタイプとトリガーに関連付けられている機能の概要について説明します。

リポジトリ イベント トリガー

Cloud Build を使用すると、push リクエストや pull リクエストなどのリポジトリ イベント時にビルドを自動的に実行できます。GitHub や Bitbucket のリポジトリなどの外部リポジトリを Cloud Build に接続できます。また、Cloud Source Repositories のコードをビルドに使用することもできます。任意のソース リポジトリを Cloud Build に接続できますが、Cloud Build には、特定のソースコード管理システム(SCM)を統合するために使用できる特定のリポジトリ イベント トリガーが用意されています。このセクションでは、使用可能なリポジトリ イベント トリガーについて説明します。

GitHub トリガー

GitHub トリガーを作成すると、push リクエストや pull リクエストなどのリポジトリ イベントに応答してビルドを自動的に実行できます。 トリガーのビルド ステータスは、GitHub と Google Cloud コンソールで確認できます。Cloud Build GitHub アプリを使用して、GitHub に接続し、コードをビルドすることもできます。詳しくは、GitHub からのリポジトリのビルドをご覧ください。

GitHub Enterprise トリガー

GitHub Enterprise インスタンスでホストされているリポジトリのトリガーを作成できます。これには、オンプレミス環境でホストされ、公共のインターネット接続を介して到達することができないインスタンスが含まれます。GitHub Enterprise トリガーを使用して、GitHub Enterprise インスタンスからの push または pull リクエストに応答してビルドを実行できます。詳しくは、GitHub Enterprise からのリポジトリのビルドをご覧ください。

GitLab Enterprise Edition トリガー

GitLab Enterprise Edition インスタンスでホストされているリポジトリのトリガーを作成できます。これには、プライベート ネットワークでホストされているインスタンスが含まれます。GitLab Enterprise Edition トリガーを使用すると、GitLab Enterprise Edition リポジトリに関連付けられた commit の push または pull リクエストに応答してビルドを実行できます。詳しくは、GitLab Enterprise Edition からのリポジトリのビルドをご覧ください。

Bitbucket Server トリガー

Bitbucket Server インスタンスでホストされているリポジトリのトリガーを作成できます。これには、オンプレミス環境でホストされているインスタンスが含まれます。複数のホスト接続を使用して、Bitbucket Server リポジトリを Cloud Build に複数回接続できます。イベントに応答してビルドを実行するトリガーを作成する方法については、Bitbucket サーバーからのリポジトリのビルドをご覧ください。

Bitbucket データセンター トリガー

Bitbucket データセンター インスタンスでホストされているリポジトリのトリガーを作成できます。これには、オンプレミス環境でホストされているインスタンスが含まれます。Bitbucket Data Center トリガーを使用して、commit の push リクエストや pull リクエストなどのイベントに応答してビルドを実行できます。詳しくは、Bitbucket データセンターからのリポジトリのビルドをご覧ください。

Bitbucket Cloud トリガー

Bitbucket Cloud でホストされているリポジトリのトリガーを作成できます。Bitbucket Cloud トリガーを使用して、commit の push リクエストや pull リクエストなどのイベントに応答してビルドを実行できます。詳しくは、Bitbucket Cloud からのリポジトリのビルドをご覧ください。

手動トリガー

手動トリガーを作成してビルドを手動で実行し、ビルド実行前の呼び出し時に置換変数の値をオーバーライドできます。手動トリガーをスケジュールに従って実行するように構成することもできます。詳しくは、ソース リポジトリでコードを手動でビルドするをご覧ください。

Pub/Sub トリガー

Pub/Sub を介して公開されたメッセージに応答してビルドを実行する Pub/Sub トリガーを作成できます。たとえば、Artifact Registry へのイメージの push に応答してビルドするために、Pub/Sub トリガーを使用できます。この場合、push されたイメージが特定のタグ(prod など)と一致する場合にのみビルドを実行するフィルタを使用するようにトリガーを構成できます。また、Pub/Sub トリガーは、任意の Pub/Sub トピックに登録するように構成できます。詳しくは、Pub/Sub イベントに応答してビルドを自動化するをご覧ください。

Webhook トリガー

Webhook トリガーを作成して、Webhook に応答してビルドを実行できます。カスタム URL に送信される Webhook イベントを使用すると、Bitbucket.com、Bitbucket Server、GitLab などの外部システムと外部ソースコード管理システム(SCM)を Cloud Build に直接接続できます。Webhook トリガーを作成するときに、トリガーにインラインでビルド構成を定義して、ソースを明示的に指定するのではなく、ビルド時にトリガーのクローンを実行するリポジトリを制御することもできます。詳しくは、Webhook イベントに応答してビルドを自動化するをご覧ください。また、Webhook トリガーを使用して特定の SCM からリポジトリを作成する方法については、Bitbucket サーバーからのリポジトリのビルドBitbucket Cloud からのリポジトリのビルドGitLab からのリポジトリのビルドをご覧ください。

トリガー機能

Cloud Build トリガーには、ビルドの実行方法をきめ細かく制御するための機能が用意されています。このセクションでは、トリガーに関連するさまざまな機能について説明します。

スケジュール設定された手動トリガー

手動トリガーのスケジュールを設定して、事前定義されたスケジュールでビルドを自動的に実行できます。たとえば、毎週土曜日の午前 6 時にビルドを実行するようにスケジュールされたトリガーを構成できます。ビルドをスケジュールするには、手動トリガーを作成し、Cloud Scheduler を使用してトリガーを呼び出します。詳しくは、ビルドのスケジュール設定をご覧ください。

イベントのフィルタリング

Cloud Build は、Build リソースにリストされているフィールドの変数 buildCommon Expression Language(CEL)を使用して、トリガー ID、イメージリスト、置換変数などのビルドイベントと関連するフィールドにアクセスします。filter 文字列を使用すると、Build リソースに表示されているフィールドを使用してビルド構成ファイル内のビルドイベントをフィルタリングできます。詳しくは、CEL を使用したビルドイベントのフィルタリングをご覧ください。

代入変数

ビルド構成ファイルに代入変数を指定して、ビルド時に特定の値を置き換えることができます。たとえば、ビルド時まで値が不明な場合や、既存のビルド リクエストを別の変数で再利用する場合は、置換変数を使用できます。 Cloud Build には、トリガー名やリポジトリ名への変数のマッピングなど、トリガーによって呼び出されたビルドに使用できるデフォルトの置換が用意されています。独自の置換変数を定義することもできます。 詳しくは、変数値の置換をご覧ください。

bash パラメータの拡張

bash パラメータの拡張を置換変数値に適用できます。bash パラメータの拡張では、既存の変数に関連付けられた文字列を操作できます。たとえば、bash パラメータの拡張を使用して、文字を大文字にしたり、部分文字列を置換したりできます。詳細については、bash パラメータの拡張をご覧ください。

ペイロード バインディング

ペイロード バインディングを使用して、トリガーのイベント ペイロードの一部を置換変数として保存できます。ペイロードに関連付けられた変数はバインディングと呼ばれ、push イベントと pull イベントの両方によって呼び出されるビルドで使用できます。バインディングを使用すると、pull リクエストの作成者など、ビルドに関連する追加データにアクセスできます。詳細については、ペイロード バインディングをご覧ください。

承認

ビルドをすぐに実行するのではなく、承認されるまでビルドを保留としてマークするようにトリガーを構成できます。権限のあるユーザーが保留中のビルドを承認すると、ビルドが開始します。承認が拒否された場合、ビルドは開始されません。承認を必要とするトリガーを構成する方法については、承認のゲートビルドをご覧ください。

ビルド ステータスの通知

Pub/Sub cloud-builds トピックからビルドイベントの更新をリッスンするように Cloud Build Notifier を構成できます。 Notifier は、トピックが受信したメッセージをフィルタし、接続済みサービスにメッセージを送信することもできます。Cloud Build では、デプロイ可能な Notifier イメージが cloud-build-notifiers リポジトリで管理されています。BigQueryHTTPSlackSMTP などの Cloud Build Notifier を使用して通知を構成するか、独自の Notifier を作成できます。

次のステップ