始める前に
- Secure Source Manager インスタンスを作成します。
- Secure Source Manager リポジトリを作成する。
- Cloud Build ユーザー指定のサービス アカウントを構成します。
必要なロール
Secure Source Manager リポジトリを Cloud Build に接続するために必要な権限を取得するには、管理者に次の IAM ロールを付与するよう依頼してください。
-
リポジトリに対する Secure Source Manager リポジトリ書き込み (
roles/securesourcemanager.repoWriter
) -
Secure Source Manager インスタンスに対する Secure Source Manager インスタンス アクセサー (
roles/securesourcemanager.instanceAccessor
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
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 ロールを付与します。
- Secure Source Manager インスタンスに対する Secure Source Manager インスタンス アクセサー ロール(
roles/securesourcemanager.instanceAccessor
)。 - Cloud Build に接続する Secure Source Manager リポジトリに対する Secure Source Manager リポジトリ閲覧者ロール。
ユースケースによっては、Cloud Build サービス アカウントがビルドを実行するために追加の IAM ロールが必要になることがあります。次に例を示します。
- ビルドログを Cloud Logging に保存するには、Cloud Build サービス アカウントにログ書き込みロールを付与します。
- Secret Manager のシークレットにアクセスするには、Cloud Build サービス アカウントに Secret Manager のシークレット アクセサー(
roles/secretmanager.secretAccessor
)ロールを付与します。
サービス エージェントに IAM ロールを付与する方法については、単一のロールを付与または取り消すをご覧ください。
ビルドログについては、ビルドログの設定をご覧ください。
ビルド構成ファイルを作成する
ビルド構成ファイルでは、Cloud Build がビルドタスクを実行するために必要なフィールドを定義します。ビルド構成ファイルは YAML 構文で記述できます。
ビルド構成ファイルは、ビルド元にするブランチに作成できます。
ビルド構成ファイルを作成する手順は次のとおりです。
- Secure Source Manager ウェブ インターフェースで、Cloud Build に接続するリポジトリを選択します。
- Cloud Build を使用してビルドするブランチを選択します。
ビルド構成ファイルを作成します。ビルド構成ファイルの作成方法については、ビルド構成ファイルを作成するの手順に沿って操作してください。
変更をブランチに commit します。
トリガー ファイルを作成する
トリガー構成ファイルは、リポジトリのデフォルト ブランチに作成する必要があります。
トリガー構成ファイルを作成するには:
- ローカル リポジトリまたは Secure Source Manager ウェブ インターフェースで、デフォルト ブランチに切り替えます。
.cloudbuild/triggers.yaml
という名前のファイルを作成します。.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_ACCOUNT
(Cloud 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
は、デフォルトの置換変数のデフォルト値をオーバーライドする値に置き換えます。
トリガー構成ファイルをデフォルト ブランチに 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: ビルドが正常に完了しました。
警告: ビルドしようとしたときに問題が発生しました。
FAILURE: 実行中にビルドが失敗しました。
トリガー ファイルで構成されたトリガーからのステータス チェックが成功することを必須とするブランチ保護ルールを構成すると、ビルドが失敗したコミットが重要なブランチにマージされるのを防ぐことができます。ブランチ保護の詳細については、ブランチ保護の概要をご覧ください。
プッシュ イベントのビルド ステータスを表示するには:
Secure Source Manager ウェブ インターフェースで、リポジトリに移動します。
最新の push イベントでビルドがトリガーされた場合、ステータスは commit SHA の横に表示されます。ステータスの詳細を表示するには、ステータスをクリックします。
以前のコミットのビルド ステータスを表示するには、[コミット] を選択してコミット履歴を表示し、詳細を表示するステータスをクリックします。
pull リクエスト イベントのビルド ステータスを表示するには:
- Secure Source Manager ウェブ インターフェースで、[Pull リクエスト] をクリックします。
表示する pull リクエストをクリックします。
ビルドが pull リクエストによってトリガーされた場合は、[すべてのチェックが成功しました] または [一部のチェックで警告が報告されました] というセクションが表示されます。
トラブルシューティング
Secure Source Manager との接続時に Cloud Build エラーを診断して解決する方法については、トリガー ファイルがビルドをトリガーしないをご覧ください。
次のステップ
- Cloud Build でビルド結果を表示する方法を学習する。
- ビルドエラーをトラブルシューティングする方法について学習する。