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

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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

準備

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

    API を有効にする

GitHub Enterprise トリガーの作成

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

Console

GitHub トリガーを使用してトリガーを作成する方法については、GitHub トリガーの作成をご覧ください。

API

次の JSON テンプレートは、コマンドラインからトリガーを作成する方法を示しています。

  {
      "filename": "cloudbuild.yaml",
      "name": "trigger-name",
      "description": "trigger-description",
      "github": {
          "push": {
              "branch": ".*",
          },
          "owner": "owner",
          "name": "repo-name",
      "enterprise_config_resource_name": "projects/project-number/githubEnterpriseConfigs/id"
      },
      "include_build_logs": "INCLUDE_BUILD_LOGS_WITH_STATUS"
  }

ここで

  • trigger-name はトリガーの名前です
  • trigger-description はトリガーの説明です
  • owner は GitHub リポジトリのオーナーです。
  • repo-name は GitHub リポジトリの名前です。
  • project-number は Cloud プロジェクトの番号です。
  • id は GitHubEnterpriseConfig の ID です。
  • [オプション] _include_build_logs は、リポジトリのビルドログを表示するために指定できるフィールドです。このフラグは、GitHub リポジトリと GitHub Enterprise リポジトリからのビルドでサポートされています。

ターミナルで次の curl コマンドを入力します。ここで、project-id は Cloud プロジェクト ID です。

  curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" https://cloudbuild.googleapis.com/v1/projects/project-id/triggers -d @trigger.json

これで、トリガーが作成されました。

データ共有

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

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

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

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

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

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

次のステップ