GitHub トリガーを使用すると、Git の push または pull リクエストが行われたときにビルドを自動的に実行できます。ビルドの結果は GitHub と Google Cloud コンソールの両方で確認できます。
このページでは、Cloud Build GitHub アプリを使用して、GitHub トリガーを作成し、GitHub からリポジトリをビルドする方法について説明します。Cloud Build トリガーと Cloud Build リポジトリの詳細を確認します。
準備
-
Enable the Cloud Build API.
- GitHub リポジトリに接続するの手順に沿って、Cloud Build GitHub アプリをインストールします。
GitHub トリガーの作成
コンソール
Google Cloud Console を使用して GitHub トリガーを作成するには、次を実行します。
Google Cloud コンソールで [トリガー] ページを開きます。
ページの上部にあるプロジェクト セレクタのプルダウン メニューからプロジェクトを選択します。
[開く] をクリックします。
[トリガーを作成] をクリックします。
次のトリガー設定を入力します。
名前: トリガーの名前を入力します。
リージョン: トリガーのリージョンを選択します。
- トリガーに関連付けられたビルド構成ファイルでプライベート プールが指定されている場合、Cloud Build は、そのプライベート プールを使用してビルドを実行します。この場合、トリガーで指定するリージョンは、プライベート プールを作成したリージョンと一致する必要があります。
- トリガーに関連付けられたビルド構成ファイルでプライベート プールが指定されていない場合、Cloud Build はデフォルトのプールを使用してトリガーと同じリージョンでビルドを実行します。
説明(省略可): トリガーの説明を入力します。
イベント: トリガーを起動するリポジトリ イベントを選択します。
ブランチに push する: 特定のブランチに対して commit が行われたときにビルドを開始するトリガーを設定します。
新しいタグを push する: 特定のタグを含む commit が行われたときにビルドを開始するトリガーを設定します。
pull リクエスト: pull リクエストの commit が行われたときにビルドを開始するトリガーを設定します。
ソース: ソースとして [第 2 世代] を選択します。
リポジトリ: 使用可能なリポジトリのリストから目的のリポジトリを選択します。新しいリポジトリに接続するには、GitHub リポジトリに接続するをご覧ください。
ブランチまたはタグ: ブランチまたはタグの値にマッチングさせる正規表現を指定します。有効な正規表現の構文については、RE2 構文をご覧ください。
コメント制御: イベントとして pull リクエスト(GitHub アプリのみ)を選択した場合は、ビルドをトリガーによって自動的に実行するかどうか、次のいずれかのオプションを選択します。
Required except for owners and collaborators: pull リクエストがリポジトリ所有者または共同編集者によって作成または更新されると、ビルドが自動的にトリガーによって実行されます。外部の投稿者がアクションを開始する場合、その pull リクエストで所有者または共同編集者が
/gcbrun
にコメントした後にのみビルドが実行されます。必須: pull リクエストが、pull リクエストの説明またはコメントで
/gcbrun
を使用して、リポジトリのオーナーまたは共同編集者によって作成または更新されると、ビルドが自動的にトリガーによって実行されます。投稿者によって pull リクエストが作成または更新されると、オーナーまたは共同編集者が pull リクエストに/gcbrun
とコメントした後にのみビルドが実行されます。不要: 投稿者を問わず pull リクエストが作成または更新されると、ビルドが自動的にトリガーで実行されます。
含まれるファイル(省略可): 少なくとも 1 つのファイルに影響する変更があった場合は、ビルドが開始されます。
無視されるファイル(省略可): 無視されるファイルにのみ影響する変更があった場合は、ビルドが開始されません。
構成: ビルドに使用するリモート リポジトリにあるビルド構成ファイルを選択するか、インライン ビルド構成ファイルを作成します。
- タイプ: ビルドに使用する構成のタイプを選択します。
- 自動検出: リポジトリに
cloudbuild.yaml
またはDockerfile
がある場合、Cloud Build は構成タイプを自動検出します。 - Cloud Build 構成ファイル(yaml または json): 構成にビルド構成ファイルを使用します。
- Dockerfile: 構成には
Dockerfile
を使用します。 - Buildpacks: 構成には Buildpacks を使用します。
- 自動検出: リポジトリに
場所: 構成の場所を指定します。
- リポジトリ: 構成ファイルがリモート リポジトリにある場合は、ビルド構成ファイルまたは
Dockerfile
ディレクトリの場所と生成されたイメージの名前を指定します。構成がDockerfile
の場合は、必要に応じてビルドのタイムアウトを指定できます。Dockerfile
とイメージ名を指定すると、ビルドが実行されるdocker build
コマンドのプレビューが表示されます。 - インライン: 構成オプションとして Cloud Build 構成ファイル(yaml または json)を選択した場合、インライン ビルド構成を指定できます。Google Cloud Console で [エディタを開く] をクリックして、YAML または JSON 構文でビルド構成ファイルを書き込みます。[完了] をクリックしてビルド構成ファイルを保存します。
- リポジトリ: 構成ファイルがリモート リポジトリにある場合は、ビルド構成ファイルまたは
- タイプ: ビルドに使用する構成のタイプを選択します。
代入変数(省略可): ビルドの構成オプションとして Cloud Build 構成ファイルを選択した場合、このフィールドを使用して、トリガー固有の代入変数を定義できます。たとえば、複数のトリガーを作成し、それぞれのトリガーが特定の環境にアプリをデプロイするとします。この場合、アプリケーションが 1 つの環境にデプロイされることをビルド構成ファイルに指定し、このフィールドを使用して代入変数を定義して、このトリガーがデプロイされる環境を指定できます。ビルド構成ファイルに代入値を指定する方法については、変数値の置換をご覧ください。
ビルドログ(省略可): チェックボックスをオンにすると、ビルドログが GitHub に送信されます。ビルドログを表示する方法については、ビルドログの表示をご覧ください。
サービス アカウント: トリガーを呼び出すときに使用するサービス アカウントを選択します。サービス アカウントを選択しない場合は、デフォルトの Cloud Build サービス アカウントが使用されます。
[作成] をクリックして、ビルドトリガーを保存します。
gcloud
コマンドを使用して GitHub トリガーを作成するには、ビルドトリガーの作成の gcloud
コマンドをご覧ください。
gcloud
gcloud
コマンドを使用して GitHub トリガーを作成するには、次のコマンドを実行します。
gcloud builds triggers create github \
--name=TRIGGER_NAME \
--repository=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME \
--branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
--build-config=BUILD_CONFIG_FILE \
--region=REGION
ここで
- TRIGGER_NAME はトリガーの名前です。
- PROJECT_ID は Google Cloud プロジェクト ID です。
- REGION はトリガーのリージョンです。
- CONNECTION_NAME は GitHub 接続の名前です。
- REPO_NAME はリポジトリの名前です
- BRANCH_PATTERN は、ビルドを呼び出すリポジトリ内のブランチ名です。
- TAG_PATTERN は、ビルドを呼び出すリポジトリ内のタグ名です。
- BUILD_CONFIG_FILE はビルド構成ファイルのパスです。
変更のビルドと表示
GitHub トリガーを使用してビルドするには、接続されたソース リポジトリに変更を push して commit するか、pull リクエストでビルドを構成する必要があります。変更をチェックインすると、Cloud Build がコードをビルドします。
GitHub でビルドの変更を確認するには、リポジトリの チェック タブに移動します。
Cloud Build が変更をビルドしたことを確認できます。また、コードのビルドに要した時間やビルド ID など、ビルドに関するその他の詳細も表示されます。
ビルドの変更を Cloud Build で表示するには、[View more details on Google Cloud Build] をクリックします。Google Cloud コンソールの [ビルドの詳細] ページが開き、ステータス、ログ、ビルドステップなどのビルド情報が表示されます。
データ共有
Cloud Build から GitHub に送信されたデータは、トリガーを名前で識別し、GitHub でビルドの結果を確認する際に役立ちます。
現在、次のデータが Cloud Build と GitHub 間で共有されています。
- Cloud プロジェクト ID
- トリガーの名前
- ビルドログ
2020 年 8 月より前にトリガーを作成した場合、プロジェクトでデータ共有が有効になっていない可能性があります。Cloud Build データ共有タブの [有効にする] をクリックすることで、プロジェクト内のすべての GitHub トリガーに対してデータ共有を有効にできます。
GitHub リポジトリで必須ステータス チェックを有効にしている場合、データ共有を有効にするとステータス チェックが一時的に中断する場合があります。次の方法で、ステータス チェックの設定を調整してトリガー名を検索できます。
- GitHub リポジトリで Cloud Build 固有の必須チェックをすべて無効にする
- Cloud Build でデータ共有が有効になっていることを確認する
- Cloud Build でステータスをリポジトリに送信する新しいビルドを実行する
- 必要なステータス チェックを再び有効にし、トリガー名を選択する
次のステップ
- ビルドトリガーを作成および管理する方法を学習する。
- Compute Engine で Blue/Green デプロイを実行する方法を学習する。