Cloud Build に接続する

このページでは、Secure Source Manager リポジトリの Cloud Build 構成ファイルとトリガー YAML ファイルを使用して、Secure Source Manager からビルドを自動的に呼び出す方法について説明します。

始める前に

  1. Secure Source Manager インスタンスを作成します
  2. Secure Source Manager リポジトリを作成する
  3. Cloud Build ユーザー指定のサービス アカウントを構成します

必要なロール

Secure Source Manager リポジトリを Cloud Build に接続するために必要な権限を取得するには、管理者に次の IAM ロールを付与するよう依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

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

Secure Source Manager のロールの付与については、IAM によるアクセス制御ユーザーにインスタンスへのアクセス権を付与するをご覧ください。

必要なサービス アカウントのロール

Cloud Build でビルドを作成してビルド ステータスを取得するには、Secure Source Manager サービス エージェント(service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com)に次の Identity and Access Management(IAM)ロールを付与します。

  • Cloud Build を有効にしたプロジェクトに対する Cloud Build 編集者ロール(roles/cloudbuild.builds.editor)。
  • Cloud Build サービス アカウント、または Cloud Build サービス アカウントの作成に使用されたプロジェクトに対するサービス アカウント ユーザー ロール(roles/iam.serviceAccountUser)。
  • Cloud Build を有効にしたプロジェクトが Secure Source Manager を有効にしたプロジェクトと異なる場合は、Cloud Build プロジェクトで サービス使用量コンシューマーのロール(roles/serviceusage.serviceUsageConsumer)を付与します。
  • ビルドがワーカープールで実行されている場合は、Cloud Build プロジェクトで Secure Source Manager サービス アカウントに Cloud Build WorkerPool ユーザー ロール(roles/cloudbuild.workerPoolUser)を付与します。

Cloud Build が Secure Source Manager リポジトリから読み取れるようにするには、Cloud Build サービス アカウントに次の IAM ロールを付与します。

ユースケースによっては、Cloud Build サービス アカウントがビルドを実行するために追加の IAM ロールが必要になることがあります。次に例を示します。

  • ビルドログを Cloud Logging に保存するには、Cloud Build サービス アカウントにログ書き込みロールを付与します。
  • Secret Manager のシークレットにアクセスするには、Cloud Build サービス アカウントに Secret Manager のシークレット アクセサーroles/secretmanager.secretAccessor)ロールを付与します。

サービス エージェントに IAM ロールを付与する方法については、単一のロールを付与または取り消すをご覧ください。

ビルドログについては、ビルドログの設定をご覧ください。

ビルド構成ファイルを作成する

ビルド構成ファイルでは、Cloud Build がビルドタスクを実行するために必要なフィールドを定義します。ビルド構成ファイルは YAML 構文で記述できます。

ビルド構成ファイルは、ビルド元にするブランチに作成できます。

ビルド構成ファイルを作成する手順は次のとおりです。

  1. Secure Source Manager ウェブ インターフェースで、Cloud Build に接続するリポジトリを選択します。
  2. Cloud Build を使用してビルドするブランチを選択します。
  3. ビルド構成ファイルを作成します。ビルド構成ファイルの作成方法については、ビルド構成ファイルを作成するの手順に沿って操作してください。

  4. 変更をブランチに commit します。

トリガー ファイルを作成する

トリガー構成ファイルは、リポジトリのデフォルト ブランチに作成する必要があります。

トリガー構成ファイルを作成するには:

  1. ローカル リポジトリまたは Secure Source Manager ウェブ インターフェースで、デフォルト ブランチに切り替えます。
  2. .cloudbuild/triggers.yaml という名前のファイルを作成します。

  3. .cloudbuild/triggers.yaml ファイルでトリガーを構成します。

    triggers:
    - name: TRIGGER_NAME
      project: PROJECT_ID
      configFilePath: CLOUD_BUILD_CONFIG_PATH
      eventType: EVENT_TYPE
      ignoredGitRefs: IGNORED_GIT_REFS
      includedGitRefs: INCLUDED_GIT_REFS
      serviceAccount: SERVICE_ACCOUNT
      includedFiles: INCLUDED_FILES
      ignoredFiles: IGNORED_FILES
      disabled: DISABLED_BOOL
      substitutions:
        _VARIABLE_NAME: VARIABLE_VALUE
        OVERRIDE_VARIABLE_NAME: OVERRIDE_VARIABLE_VALUE
    

    次のように置き換えます。

    • TRIGGER_NAME は、トリガーの名前に置き換えます。トリガー名に使用できるのは英数字とダッシュのみです。先頭または末尾にダッシュは使用できません。トリガー名は 64 文字未満で指定してください。
    • PROJECT_ID は、Cloud Build を有効にした Google Cloud プロジェクト ID に置き換えます。このフィールドは省略可能です。デフォルトは Secure Source Manager プロジェクトです。
    • CLOUD_BUILD_CONFIG_PATH: このトリガーに使用する Cloud Build 構成ファイルへのパス。このフィールドは省略可能です。デフォルト値は .cloudbuild/cloudbuild.yaml です。
    • EVENT_TYPE: ビルドをトリガーするイベントタイプ。オプションは次のとおりです。

      • push: 指定されたブランチへの push でトリガーする
      • pull_request: 指定されたブランチへの pull リクエストでトリガーする

      このフィールドは省略可能です。デフォルト値は push です。

    • ビルドをトリガーする Git 参照に一致する、オプションの RE2 正規表現形式を含む INCLUDED_GIT_REFS。デフォルト値は空です。値が空の場合は、制限がないことを示します。

    • ビルドをトリガーしない Git 参照に一致する RE2 正規表現形式を使用する正規表現(省略可)を含む IGNORED_GIT_REFS。デフォルト値は空です。値が空の場合は、制限がないことを示します。ignoredGitRefs フィールドは includedGitRefs フィールドの前にチェックされます。これらのフィールドの詳細については、トリガー ファイルのスキーマをご覧ください。

    • SERVICE_ACCOUNTCloud Build サービス アカウント): ビルドに使用するアカウント。形式は projects/PROJECT_ID/serviceAccounts/ACCOUNT です。ACCOUNT は、サービス アカウントのメールアドレスまたは一意の ID に置き換えます。ベスト プラクティスとして、ユーザー指定のサービス アカウントを構成します。以前の Cloud Build サービス アカウントは、制限事項があるため使用できません。

    • INCLUDED_FILES: ビルドをトリガーするファイルに一致する RE2 形式の正規表現(省略可)。

      変更されたファイルのいずれかが ignoredFiles フィルタ フィールドと一致せず、変更されたファイルが includedFiles フィルタ フィールドと一致する場合、ビルドがトリガーされます。デフォルト値は空です。値が空の場合は、制限がないことを示します。

    • IGNORED_FILES。ビルドをトリガーしないファイルに一致する RE2 形式の正規表現(省略可)。

      commit 内の変更されたすべてのファイルがこのフィルタ フィールドと一致する場合、ビルドはトリガーされません。デフォルト値は空です。値が空の場合、制限がないことを示します。

    • DISABLED_BOOL: トリガーを無効にする場合は true、トリガーを有効にする場合は false。このフィールドは省略可能です。デフォルト値は false です。

    • VARIABLE_NAME は、トリガー ファイルに導入する変数の名前に置き換えます。

    • VARIABLE_VALUE は、変数の値。

    • OVERRIDE_VARIABLE_NAME は、Secure Source Manager のデフォルトの置換変数名に置き換えます。使用可能なデフォルトの置換変数については、トリガー ファイル スキーマの置換セクションをご覧ください。

    • OVERRIDE_VARIABLE_VALUE は、デフォルトの置換変数のデフォルト値をオーバーライドする値に置き換えます。

  4. トリガー構成ファイルをデフォルト ブランチに commit します。

    トリガー ファイルが commit されると、Secure Source Manager はトリガー ファイルの構成に基づいてビルドをトリガーします。

    Secure Source Manager は、次のタイプのイベントの構成ファイルと、関連付けられた commit SHA または Git ref を読み取ります。

    • push イベントの場合、プッシュが完了すると、Secure Source Manager は commit SHA または Git ref を読み取ります。
    • pull_request イベントの場合、Secure Source Manager は、pull リクエストの変更が pull されるときに commit SHA または Git 参照を読み取ります。

ビルドのステータスを表示する

push イベントまたは pull リクエスト イベントによってビルドがトリガーされると、コミットとビルドのステータスが Secure Source Manager ウェブ インターフェースに表示されます。

ビルド ステータスに指定できる値は次のとおりです。

  • 成功SUCCESS: ビルドが正常に完了しました。
  • 警告警告: ビルドしようとしたときに問題が発生しました。
  • failureFAILURE: 実行中にビルドが失敗しました。

トリガー ファイルで構成されたトリガーからのステータス チェックが成功することを必須とするブランチ保護ルールを構成すると、ビルドが失敗したコミットが重要なブランチにマージされるのを防ぐことができます。ブランチ保護の詳細については、ブランチ保護の概要をご覧ください。

プッシュ イベントのビルド ステータスを表示するには:

  1. Secure Source Manager ウェブ インターフェースで、リポジトリに移動します。

    最新の push イベントでビルドがトリガーされた場合、ステータスは commit SHA の横に表示されます。ステータスの詳細を表示するには、ステータスをクリックします。

  2. 以前のコミットのビルド ステータスを表示するには、[コミット] を選択してコミット履歴を表示し、詳細を表示するステータスをクリックします。

pull リクエスト イベントのビルド ステータスを表示するには:

  1. Secure Source Manager ウェブ インターフェースで、[Pull リクエスト] をクリックします。
  2. 表示する pull リクエストをクリックします。

    ビルドが pull リクエストによってトリガーされた場合は、[すべてのチェックが成功しました] または [一部のチェックで警告が報告されました] というセクションが表示されます。

トラブルシューティング

Secure Source Manager との接続時に Cloud Build エラーを診断して解決する方法については、トリガー ファイルがビルドをトリガーしないをご覧ください。

次のステップ