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 と Cloud Console で確認できます。Cloud Build GitHub アプリを使用して、GitHub のコードに接続し、ビルドすることもできます。 詳しくは、GitHub からのリポジトリのビルドをご覧ください。

GitHub Enterprise トリガー

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

手動トリガー

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

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 リポジトリで管理されています。Cloud Build Notifier を使用して、BigQueryHTTPSlackSMTP などの通知を構成するか、独自の Notifier を作成します。

次のステップ