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

Cloud Build を使用すると、GitHub Enterprise インスタンスでトリガーを作成できます。このページでは、GitHub Enterprise トリガーを使用して、GitHub Enterprise リポジトリからの commit または pull リクエストに応答してビルドを呼び出す方法について説明します。

Cloud Build トリガーCloud Build リポジトリの詳細を確認します。

準備

  • Enable the Cloud Build and Secret Manager APIs.

    Enable the APIs

GitHub Enterprise トリガーの作成

このセクションでは、トリガーを作成して、GitHub Enterprise インストールにそのトリガーをリンクする方法について説明します。プライベート ネットワークで GitHub Enterprise トリガーを使用する場合は、プライベート ネットワークで GitHub Enterprise からのリポジトリのビルドの手順をご覧ください。

コンソール

Google Cloud コンソールを使用して GitHub Enterprise トリガーを作成するには:

  1. Google Cloud コンソールで [トリガー] ページを開きます。

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

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

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

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

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

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

    • リージョン: トリガーのリージョンを選択します。

      • トリガーに関連付けられたビルド構成ファイルでプライベート プールが指定されている場合、Cloud Build は、そのプライベート プールを使用してビルドを実行します。この場合、トリガーで指定するリージョンは、プライベート プールを作成したリージョンと一致する必要があります。
      • トリガーに関連付けられたビルド構成ファイルでプライベート プールが指定されていない場合、Cloud Build はデフォルトのプールを使用してトリガーと同じリージョンでビルドを実行します。
    • 説明(省略可): トリガーの説明を入力します。

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

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

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

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

    • ソース: ソースとして [第 2 世代] を選択します。

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

      • ブランチまたはタグ: ブランチまたはタグの値にマッチングさせる正規表現を指定します。有効な正規表現の構文については、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 サービス アカウントが使用されます。

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

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 Enterprise 接続の名前です。
  • REPO_NAME はリポジトリの名前です
  • BRANCH_PATTERN は、ビルドを呼び出すリポジトリ内のブランチ名です。
  • TAG_PATTERN は、ビルドを呼び出すリポジトリ内のタグ名です。
  • BUILD_CONFIG_FILE はビルド構成ファイルのパスです。

データ共有

Cloud Build から GitHub Enterprise に送信されたデータは、トリガーを名前で識別し、GitHub Enterprise でビルドの結果を確認する際に役立ちます。

現在、次のデータが Cloud Build と GitHub Enterprise 間で共有されています。

  • Cloud プロジェクト ID
  • トリガーの名前
  • ビルドログ

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

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

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

次のステップ