ビルド依存関係を管理する

このページでは、ビルドの依存関係を指定する方法について説明します。Cloud Build を使用すると、ソースコードの依存関係をビルドプロセスとは別に管理できます。

ビルド構成ファイルで、ビルド用にクローンする 1 つ以上の Git リポジトリと、それらを取得する順序を指定できます。このように依存関係を指定すると、依存関係の取得がビルドプロセス自体から分離されます。

ビルド構成ファイルに依存関係を含めない場合、Cloud Build は、ビルド構成ファイルを含むソースコード リポジトリ(トリガーされたビルドの場合)またはソースコードを含むリポジトリ(コマンドラインから呼び出すビルドの場合)のクローンを作成します。ビルド構成ファイルに依存関係を含めた場合、Cloud Build は dependencies フィールドで指定されていないリポジトリを複製しません。

dependencies フィールドで指定するソースコード リポジトリは、Developer Connect を使用して Cloud Build に接続されているか、パブリック リポジトリである必要があります。

依存関係は、この構成で指定した順序でクローンされます。また、依存関係の取得は、ユーザーが指定したロジックが実行される前に行われます。したがって、依存関係の取得は信頼されています。

依存関係は、[ビルドの詳細] ページの [ビルドの依存関係] タブに表示されます。

始める前に

このページの手順では、1 つ以上の Git リポジトリがパブリック リポジトリであるか、Developer Connect を使用してリンクされていることを前提としています。

Developer Connect リポジトリを依存関係として追加するために必要な権限を取得するには、サービス アカウントに対する Developer Connect 読み取りトークン アクセサー(developerconnect.readTokenAccessor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

依存関係を指定する

依存関係は、ビルド構成ファイルに dependencies スタンザを追加することで指定します。dependencies はビルド構成の最上位プロパティですが、ファイル内の任意の場所に配置できます。

dependencies スタンザの構文は次のとおりです。

YAML

 dependencies:
 - gitSource:
     repository:
       url: 'URL'
       developerConnect: 'RESOURCE_PATH'
     revision: 'REVISION'
     recurseSubmodules: 'true|false'
     depth: DEPTH'
     destPath: 'DEST_PATH'

JSON

 {
     "dependencies": {
         "gitSource": {
             "repository": {
                 "url": "URL"
                 "developerConnect": "RESOURCE_PATH"
             },
             "revision": "REVISION",
             "recurseSubmodules": true|false,
             "depth": "DEPTH",
             "destPath": "DEST_PATH",
         },
     },
 }

URL またはリソースパスのいずれかを指定する必要があります。取得するリポジトリが Developer Connect を使用して Cloud Build に接続されている場合は、リソースパスを指定します。

次の値を置き換えます。

  • URL: 省略可。取得するリポジトリの HTTPS URL。
  • RESOURCE_PATH: 省略可。Developer Connect リポジトリの Google Cloud リソースパス。例: projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo

  • REVISION: 必須。リポジトリから取得するバージョン、コミット ハッシュ、タグ、ブランチ名。

  • recurseSubmodules: 「true|false」: サブモジュールを取得するかどうか。

  • DEPTH: 省略可。リポジトリの履歴をどこまで取得するか。指定しない場合、最新の commit が取得されます。

    • 1: 最新の commit
    • 2: 最後の 2 つのコミット
    • 3: 最後の 3 つのコミット
    • -1: すべてのコミット
  • DEST_PATH: 必須。リポジトリのクローンを作成するディレクトリのパス。例: my/repo

    dest_path を設定すると、リポジトリは /workspace/<dest_path> で取得されます。dest_path の値は、ビルドの作業ディレクトリを基準とした相対パスにする必要があります。

Developer Connect リポジトリを依存関係として指定する

Developer Connect リポジトリを依存関係として指定するには、次の条件を満たす必要があります。

  • Cloud Build サービス アカウントには、Developer Connect Read Token Accessor ロールが必要です。

  • ビルドは、Developer Connect 接続と同じリージョンに存在する必要があります。

次のステップ