GitHub からのリポジトリのビルド

GitHub トリガーを使用すると、Git の push または pull リクエストが行われたときにビルドを自動的に実行できます。ビルドの結果は GitHub と Cloud Console の両方で確認できます。また、GitHub トリガーは、既存の GitHub トリガーでサポートされているすべての機能をサポートし、Cloud Build GitHub アプリを使用して GitHub の構成と認証を行います。

このページでは、Cloud Build GitHub アプリを使用して、GitHub トリガーを作成し、GitHub でビルドする方法を説明します。

始める前に

  • Cloud Build API を有効にします。

    API を有効にする

  • GitHub リポジトリにソースコードを用意します。
  • GitHub ソース リポジトリに、Dockerfile または Cloud Build 構成ファイルを配置します。
  • 最初にリポジトリを Cloud Build に接続する場合は、リポジトリに対する管理者レベルの権限があることを確認してください。GitHub リポジトリの権限の詳細については、組織におけるリポジトリ権限レベルをご覧ください。
  • このページで gcloud コマンドを使用するために、Cloud SDK をインストールします。

Cloud Build アプリのインストール

Cloud Build アプリをインストールして GitHub リポジトリを Cloud プロジェクトに接続するには:

  1. Google Cloud Console で [トリガー] ページを開きます。

    [トリガー] ページを開く

  2. 上部のバーにあるプロジェクト セレクタで、Cloud プロジェクトを選択します。

  3. [リポジトリを接続] をクリックします。

  4. [GitHub(Cloud Build GitHub アプリ)] を選択し、同意のチェックボックスをオンにしてから [続行] をクリックします。

  5. (任意)GitHub にログインしていない場合は、今すぐ GitHub にログインします。

    承認ページが表示され、Google Cloud Build アプリが Google Cloud に接続できるよう承認を求められます。

    [authorize] ボタンのスクリーンショット

    [Authorize Google Cloud Build by GoogleCloudBuild] をクリックします。

  6. [Google Cloud Build のインストール] をクリックします。

  7. ポップアップが表示されたら、GitHub のユーザー名または組織を選択します。

  8. ビジネスニーズに応じて、次のいずれかの項目を選択します。

    • All repositories - Cloud Build アプリを介して、現在と将来のすべての GitHub リポジトリにアクセスできます。

    • Only select repositories - Select repositories のプルダウンを使用して、Cloud Build アプリから特定のリポジトリにのみアクセスできるようにします。後で追加のリポジトリを有効にすることも可能です。

  9. Cloud Build アプリをインストールするには、[Install] をクリックしてください。

    ポップアップが閉じ、Cloud Build 内のプロジェクト セレクタ ページに進みます。このページでは、既存の Cloud プロジェクトを選択するか、新しいプロジェクトを作成できます。

    このページに既存のプロジェクトが表示されていない場合は、プロジェクトを選択 をクリックすると既存のプロジェクトのリストが表示されます。

  10. プロジェクトを選択するか、新しいプロジェクトを作成すると、リポジトリの接続 パネルが表示されます。

  11. リポジトリを選択 セクションで、次のフィールドを選択します。

    • GitHub アカウント: Cloud Build GitHub アプリのインストールに使用された GitHub アカウント。このフィールドはあらかじめ選択されています。

    • リポジトリ: Cloud Build に接続するリポジトリ。

      ターゲット リポジトリが 1 つ以上表示されない場合は、GitHub でリポジトリを編集 をクリックし、上記の手順を繰り返して、Cloud Build GitHub アプリ内の追加リポジトリを有効にします。

  12. GitHub アカウントとリポジトリを選択したら、同意の免責条項を読み、横にあるチェックボックスをオンにして、提示された利用規約に同意することを表明します。

  13. [接続] をクリックします。

  14. (省略可)トリガーを作成 セクションの これらのリポジトリのサンプル トリガーを作成 フィールドで、トリガーを作成するリポジトリを選択します。リポジトリを選択したら、トリガーを作成 をクリックします。

  15. [完了] をクリックします。

これで Cloud プロジェクトに 1 つ以上の GitHub リポジトリが接続されました。 Cloud Console の [トリガー] ページが開きます。

(省略可)認証済みの GitHub アカウントの更新

Google アカウントに関連付けられている GitHub アカウントを更新する必要がある場合は、GitHub で認証するのページに移動してください。Cloud Build Connect のリポジトリ ページに、GitHub への Cloud Build アプリのインストール後に GitHub アプリがリポジトリにインストールされていないことが示されている場合は、この操作を行うことが必要な可能性があります。

GitHub トリガーの作成

GitHub トリガーを作成するには:

  1. Google Cloud Console で [トリガー] ページを開きます。

    [トリガー] ページを開く

  2. ページの上部にあるプロジェクト セレクタのプルダウン メニューからプロジェクトを選択します。

  3. [開く] をクリックします。

  4. [トリガーを作成] をクリックします。

  5. 次のトリガー設定を入力します。

    • 名前: トリガーの名前を入力します。

    • 説明(省略可): トリガーの説明を入力します。

    • イベント: トリガーを起動するリポジトリ イベントを選択します。

      • ブランチに push する: 特定のブランチに対して commit が行われたときにビルドを開始するトリガーを設定します。

      • 新しいタグを push する: 特定のタグを含む commit が行われたときにビルドを開始するトリガーを設定します。

      • pull リクエスト(GitHub アプリのみ): pull リクエストの commit が行われたときにビルドを開始するトリガーを設定します。

    • ソース: リポジトリと、イベントの監視対象となるブランチまたはタグを選択します。

      • リポジトリ: 使用可能なリポジトリのリストから目的のリポジトリを選択します。新しいリポジトリに接続するには、追加リポジトリへの接続をご覧ください。

      • ブランチまたはタグ: ブランチまたはタグの値にマッチングさせる正規表現を指定します。有効な正規表現の構文については、RE2 構文をご覧ください。

      • コメント制御: イベントとして pull リクエスト(GitHub アプリのみ)を選択した場合は、ビルドをトリガーによって自動的に実行するかどうか、次のいずれかのオプションを選択します。

        • Required except for owners and collaborators: pull リクエストがリポジトリ所有者または共同編集者によって作成または更新されると、ビルドが自動的にトリガーによって実行されます。外部の投稿者がアクションを開始する場合、その pull リクエストで所有者または共同編集者が /gcbrun にコメントした後にのみビルドが実行されます。

        • 必須: 投稿者を問わず pull リクエストが作成または更新されると、所有者または共同編集者が pull リクエストに /gcbrun とコメントした後にのみビルドが実行されます。

        • 不要: 投稿者を問わず pull リクエストが作成または更新されると、ビルドが自動的にトリガーで実行されます。

    • 含まれるファイル(省略可): 少なくとも 1 つのファイルに影響する変更があった場合は、ビルドが開始されます。

    • 無視されるファイル(省略可): 無視されるファイルにのみ影響する変更があった場合は、ビルドが開始されません。

    • 構成: ビルドに使用するリモート リポジトリにあるビルド構成ファイルを選択するか、インライン ビルド構成ファイルを作成します。

      • タイプ: ビルドに使用する構成のタイプを選択します。
        • Cloud Build 構成ファイル(yaml または json): 構成にビルド構成ファイルを使用します。
        • Dockerfile: 構成には Dockerfile を使用します。
      • 場所: 構成の場所を指定します。

        • リポジトリ: 構成ファイルがリモート リポジトリにある場合は、ビルド構成ファイルまたは Dockerfile ディレクトリの場所と生成されたイメージの名前を指定します。構成が Dockerfile の場合は、必要に応じてビルドのタイムアウトを指定できます。Dockerfile とイメージ名を指定すると、ビルドが実行される docker build コマンドのプレビューが表示されます。
        • インライン: 構成オプションとして Cloud Build 構成ファイル(yaml または json)を選択した場合、インライン ビルド構成を指定できます。Google Cloud Console で [エディタを開く] をクリックして、YAML または JSON 構文でビルド構成ファイルを書き込みます。[完了] をクリックしてビルド構成ファイルを保存します。

  6. [作成] をクリックして、ビルドトリガーを保存します。

gcloud コマンドを使用して GitHub トリガーを作成するには、ビルドトリガーの作成gcloud コマンドをご覧ください。

変更のビルドと表示

GitHub トリガーを使用してビルドするには、接続されたソース リポジトリに変更を push して commit するか、pull リクエストでビルドを構成する必要があります。変更をチェックインすると、Cloud Build がコードをビルドします。

GitHub でビルドの変更を確認するには、リポジトリの チェック タブに移動します。

[conversation] タブのスクリーンショット

Cloud Build が変更をビルドしたことを確認できます。また、コードのビルドに要した時間やビルド ID など、ビルドに関するその他の詳細も表示されます。

ビルドの変更を Cloud Build で表示するには、[View more details on Google Cloud Build] をクリックします。Cloud Console の [ビルドの詳細] ページが開き、このページでステータス、ログ、ビルドステップなどのビルド情報を確認できます。

さまざまなタイプの GitHub ベーストリガー

ソースコードが GitHub にある場合、Cloud Build では 2 つの方法でビルドを自動的に実行できます。このセクションでは、2 つの GitHub ベーストリガーについて説明し、機能を比較します。

  • GitHub レガシー トリガー: GitHub レガシー トリガーを作成すると、Cloud Build は Cloud Source Repositories で GitHub リポジトリをミラーリングし、ミラーリングしたリポジトリをすべての操作で使用します。Cloud Console を使用して GitHub トリガーの作成と管理を行うことができます。

  • GitHub トリガー: GitHub アプリトリガーは Cloud Build GitHub アプリを使用して GitHub の構成と認証を行います。GitHub トリガーを使用すると、Git の push または pull リクエストが行われたときにビルドを自動的に開始できます。ビルドの結果は GitHub と Cloud Console の両方で確認できます。Cloud Console または Cloud Build API を使用して GitHub トリガーの作成と管理を行うことができます。

  • GitHub Enterprise トリガー: GitHub Enterprise インスタンスの commit または pull リクエストに応答してビルドを呼び出すことができます。Cloud Console または Cloud Build API を使用して GitHub Enterprise トリガーの作成と管理を行うことができます。

次の表は、GitHub のレガシー トリガー、GitHub トリガー、GitHub Enterprise トリガーを比較したものです。

機能 GitHub レガシー トリガー GitHub トリガー GitHub Enterprise トリガー
ソースコードへの push 時にビルドを実行する
pull リクエストに対してビルドを実行する ×
Cloud Console を使用してトリガーを作成する
Cloud Build API を使用してトリガーを作成する ×
Cloud Build GitHub アプリを使用してトリガーを作成する ×
Cloud Console でビルド ステータスを表示する
GitHub でビルド ステータスを表示する ×

データ共有

GitHub トリガーは Cloud Build GitHub アプリにデータを送信します。アプリに送信されたデータにより、トリガーを名前で識別し、GitHub でビルドの結果を確認できます。

現在、次のデータが Google Cloud と GitHub アプリ間で共有されています。

  • トリガーの名前

2020 年 8 月より前にトリガーを作成した場合、プロジェクトでデータ共有が有効になっていない可能性があります。Cloud Build データ共有タブの [有効にする] をクリックすることで、プロジェクト内のすべての GitHub トリガーに対してデータ共有を有効にできます。

GitHub リポジトリで必須ステータス チェックを有効にしている場合、データ共有を有効にするとステータス チェックが一時的に中断する場合があります。次の方法で、ステータス チェックの設定を調整してトリガー名を検索できます。

  • GitHub リポジトリで Cloud Build 固有の必須チェックをすべて無効にする
  • Cloud Build でデータ共有が有効になっていることを確認する
  • Cloud Build でステータスをリポジトリに送信する新しいビルドを実行する
  • 必要なステータス チェックを再び有効にし、トリガー名を選択する

次のステップ