AWS CodeBuild でのバッチビルド
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:3.0
-
env/privileged-mode
が に設定されている場合。true
これらのビルドは並行して実行されます。
ビルドマトリックス buildspec 構文の詳細については、「batch/build-matrix」を参照してください。
バッチレポートモード
プロジェクトのソースプロバイダーが Bitbucket、GitHub、または GitHub Enterprise であり、ソースプロバイダーにビルドステータスを報告するようにプロジェクトが設定されている場合は、ソースプロバイダーにバッチビルドステータスを送信する方法を選択できます。バッチに関する単一の集約ステータスレポートとしてステータスを送信する、またはバッチ内の各ビルドのステータスを個別に報告することを選択できます。
詳細については、以下のトピックを参照してください。
詳細情報
詳細については、以下のトピックを参照してください。