AWS CodeBuild を使用して、バッチビルドによりプロジェクトの同時ビルドと協調ビルドを実行できます。
セキュリティロール
バッチビルドでは、バッチ設定に新しいセキュリティロールが導入されます。この新しいロールでは、CodeBuild が StartBuild
、StopBuild
および RetryBuild
アクションを使用して、バッチの一部としてビルドを実行する上で必要です。次の2つの理由により、お客様はビルドで使用するものと同じロールではなく、新しいロールを使用する必要があります。
-
ビルドの役割を与える
StartBuild
、StopBuild
、およびRetryBuild
アクセス権限を使用すると、単一のビルドが buildspec を介してより多くのビルドを開始することができます。 -
CodeBuild バッチビルドには、バッチ内のビルドに使用できるビルドと計算タイプの数を制限する制限があります。ビルドロールにこれらの権限がある場合、ビルド自体がこれらの制限を回避する可能性があります。
バッチビルドのタイプ
CodeBuild は、次のバッチビルドタイプをサポートしています。
ビルドグラフ
ビルドグラフは、バッチ内の他のタスクに依存する一連のタスクを定義します。
次の例では、依存関係チェーンを作成するビルドグラフを定義します。
batch:
fast-fail: false
build-graph:
- identifier: build1
env:
variables:
BUILD_ID: build1
ignore-failure: false
- identifier: build2
buildspec: build2.yml
env:
variables:
BUILD_ID: build2
depend-on:
- build1
- identifier: build3
env:
variables:
BUILD_ID: build3
depend-on:
- build2
この例では、以下のことを行います。
-
build1
は、依存関係を持たないため、最初に実行されます。 -
build2
はbuild1
への依存関係があるため、build2
はbuild1
の完了後に実行されます。 -
build3
はbuild2
への依存関係があるため、build3
はbuild2
の完了後に実行されます。
ビルドグラフの buildspec 構文の詳細については、「batch/build-graph」を参照してください。
ビルドリスト
ビルドリストは、並行して実行されるタスクの数を定義します。
次の例では、ビルドリストを定義します。build1
ビルドと build2
ビルドは並行して実行されます。
batch:
fast-fail: false
build-list:
- identifier: build1
env:
variables:
BUILD_ID: build1
ignore-failure: false
- identifier: build2
buildspec: build2.yml
env:
variables:
BUILD_ID: build2
ignore-failure: true
ビルドリストの buildspec 構文の詳細については、「batch/build-list」を参照してください。
ビルドマトリックス
ビルドマトリックスは、並行して実行される異なる構成のタスクを定義します。CodeBuild は、設定可能な組み合わせごとに個別のビルドを作成します。
次の例は、2 つの buildspec ファイルと環境変数の 3 つの値を含むビルド行列を示しています。
batch:
build-matrix:
static:
ignore-failure: false
dynamic:
buildspec:
- matrix1.yml
- matrix2.yml
env:
variables:
MY_VAR:
- VALUE1
- VALUE2
- VALUE3
この例では、CodeBuild は 6 つのビルドを作成します。
-
matrix1.yml
( を含む)$MY_VAR=VALUE1
-
matrix1.yml
( を含む)$MY_VAR=VALUE2
-
matrix1.yml
( を含む)$MY_VAR=VALUE3
-
matrix2.yml
( を含む)$MY_VAR=VALUE1
-
matrix2.yml
( を含む)$MY_VAR=VALUE2
-
matrix2.yml
( を含む)$MY_VAR=VALUE3
各ビルドには次の設定があります。
-
ignore-failure
がfalse
に設定 -
env/type
がLINUX_CONTAINER
に設定 -
env/image
がaws/codebuild/amazonlinux2-x86_64-standard:4.0
に設定 -
env/privileged-mode
がtrue
に設定
これらのビルドは並行して実行されます。
ビルドマトリックスの buildspec 構文の詳細については、「batch/build-matrix」を参照してください。
バッチレポートモード
プロジェクトのソースプロバイダーが Bitbucket、GitHub、または GitHub Enterprise であり、ソースプロバイダーにビルドステータスを報告するようにプロジェクトが設定されている場合は、ソースプロバイダーにバッチビルドステータスを送信する方法を選択できます。バッチに関する単一の集約ステータスレポートとしてステータスを送信する、またはバッチ内の各ビルドのステータスを個別に報告することを選択できます。
詳細については、以下の各トピックを参照してください。
詳細情報
詳細については、以下の各トピックを参照してください。