

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 批量构建 buildspec 参考
<a name="batch-build-buildspec"></a>

本主题包含批量构建属性的 buildspec 参考。

## 批处理
<a name="build-spec.batch"></a>

可选的映射。项目的批量构建设置。

batch/**fast-fail**  
可选。指定当一个或多个构建任务失败时的批量构建行为。    
`false`  
默认值。所有正在运行的构建都会完成。  
`true`  
当其中一个构建任务失败时，所有正在运行的构建都将停止。

默认情况下，所有批量构建任务运行时，都使用 buildspec 文件中指定的构建设置（例如 `env` 和 `phases`）。您可以通过在 `batch/<batch-type>/buildspec` 参数中指定不同的 `env` 值或其他 buildspec 文件来覆盖默认的构建设置。

该 `batch` 属性的内容因所指定的批量构建类型而异。可能的批量构建类型如下：
+ [`batch/build-graph`](#build-spec.batch.build-graph)
+ [`batch/build-list`](#build-spec.batch.build-list)
+ [`batch/build-matrix`](#build-spec.batch.build-matrix)
+ [`batch/build-fanout`](#build-spec.batch.build-fanout)

## `batch/build-graph`
<a name="build-spec.batch.build-graph"></a>

定义*构建图*。构建图定义了一组任务，这些任务依赖于批量处理中的其他任务。有关更多信息，请参阅 [构建图](batch-build.md#batch_build_graph)。

该元素包含一组构建任务。每个构建任务都包含以下属性。

**identifier**  
必需。任务的标识符。

**buildspec**  
可选。要用于此任务的 buildspec 文件的路径和文件名。如果未指定此参数，将使用当前的 buildspec 文件。

**debug-session**  
可选。布尔值，指示是否为此批量构建启用会话调试。有关会话调试的更多信息，请参阅[使用会话管理器调试构建](session-manager.md)。    
`false`  
会话调试已禁用。  
`true`  
会话调试已启用。

**depend-on**  
可选。此任务所依赖的一组任务标识符。在这些任务完成之前，此任务不会运行。

**env**  
可选。此任务的构建环境覆盖。它可以包含以下属性：    
**compute-type**  
用于该任务的计算类型的标识符。请参见[构建环境计算模式和类型](build-env-ref-compute-types.md)中的 **computeType**，了解可能使用的值。  
** 实例集**  
要用于任务的实例集的标识符。请参阅[在预留容量实例集上运行构建](fleets.md)了解更多信息。  
**image**  
用于该任务的映像的标识符。请参阅 [提供的 Docker 镜像 CodeBuild](build-env-ref-available.md)中的**映像标识符**，了解可能使用的值。  
**privileged-mode**  
布尔值，指示是否在 Docker 容器内运行 Docker 守护程序。仅在构建项目用于构建 Docker 映像时设置为 `true`。否则，尝试与 Docker 守护程序进行交互的构建将失败。默认设置为 `false`。  
**type**  
用于该任务的环境类型的标识符。请参阅[构建环境计算模式和类型](build-env-ref-compute-types.md)中的**环境类型**，了解可能使用的值。  
**variables**  
构建环境中将存在的环境变量。请参阅[env/variables](build-spec-ref.md#build-spec.env.variables)了解更多信息。
请注意，**compute-type** 和 **fleet** 不能在单个构建的同一标识符中提供。

**ignore-failure**  
可选。布尔值，用于指示是否可以忽略此构建任务的故障。    
`false`  
默认值。如果此构建任务失败，则批量构建将失败。  
`true`  
如果此构建任务失败，则批量构建仍然可以成功。

以下是构建图 buildspec 条目的示例：

```
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
    - identifier: build4
      env:
        compute-type: ARM_LAMBDA_1GB
    - identifier: build5
      env:
        fleet: fleet_name
```

## `batch/build-list`
<a name="build-spec.batch.build-list"></a>

定义*构建列表*。构建列表用于定义多个并行运行的任务。有关更多信息，请参阅 [构建列表](batch-build.md#batch_build_list)。

该元素包含一组构建任务。每个构建任务都包含以下属性。

**identifier**  
必需。任务的标识符。

**buildspec**  
可选。要用于此任务的 buildspec 文件的路径和文件名。如果未指定此参数，将使用当前的 buildspec 文件。

**debug-session**  
可选。布尔值，指示是否为此批量构建启用会话调试。有关会话调试的更多信息，请参阅[使用会话管理器调试构建](session-manager.md)。    
`false`  
会话调试已禁用。  
`true`  
会话调试已启用。

**env**  
可选。此任务的构建环境覆盖。它可以包含以下属性：    
**compute-type**  
用于该任务的计算类型的标识符。请参见[构建环境计算模式和类型](build-env-ref-compute-types.md)中的 **computeType**，了解可能使用的值。  
** 实例集**  
要用于任务的实例集的标识符。请参阅[在预留容量实例集上运行构建](fleets.md)了解更多信息。  
**image**  
用于该任务的映像的标识符。请参阅 [提供的 Docker 镜像 CodeBuild](build-env-ref-available.md)中的**映像标识符**，了解可能使用的值。  
**privileged-mode**  
布尔值，指示是否在 Docker 容器内运行 Docker 守护程序。仅在构建项目用于构建 Docker 映像时设置为 `true`。否则，尝试与 Docker 守护程序进行交互的构建将失败。默认设置为 `false`。  
**type**  
用于该任务的环境类型的标识符。请参阅[构建环境计算模式和类型](build-env-ref-compute-types.md)中的**环境类型**，了解可能使用的值。  
**variables**  
构建环境中将存在的环境变量。请参阅[env/variables](build-spec-ref.md#build-spec.env.variables)了解更多信息。
请注意，**compute-type** 和 **fleet** 不能在单个构建的同一标识符中提供。

**ignore-failure**  
可选。布尔值，用于指示是否可以忽略此构建任务的故障。    
`false`  
默认值。如果此构建任务失败，则批量构建将失败。  
`true`  
如果此构建任务失败，则批量构建仍然可以成功。

以下是构建列表 buildspec 条目的示例：

```
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
    - identifier: build3
      env:
        compute-type: ARM_LAMBDA_1GB
    - identifier: build4
      env:
        fleet: fleet_name
    - identifier: build5
      env:
        compute-type: GENERAL_LINUX_XLAGRE
```

## `batch/build-matrix`
<a name="build-spec.batch.build-matrix"></a>

定义*构建矩阵*。构建矩阵定义了具有不同配置且并行运行的任务。CodeBuild 会为每种可能的配置组合创建一个单独的构建。有关更多信息，请参阅 [构建矩阵](batch-build.md#batch_build_matrix)。

**static**  
静态属性适用于所有构建任务。    
**ignore-failure**  
可选。布尔值，用于指示是否可以忽略此构建任务的故障。    
`false`  
默认值。如果此构建任务失败，则批量构建将失败。  
`true`  
如果此构建任务失败，则批量构建仍然可以成功。  
**env**  
可选。所有任务的构建环境覆盖。    
**privileged-mode**  
布尔值，指示是否在 Docker 容器内运行 Docker 守护程序。仅在构建项目用于构建 Docker 映像时设置为 `true`。否则，尝试与 Docker 守护程序进行交互的构建将失败。默认设置为 `false`。  
**type**  
用于该任务的环境类型的标识符。请参阅[构建环境计算模式和类型](build-env-ref-compute-types.md)中的**环境类型**，了解可能使用的值。

**dynamic**  
动态属性定义构建矩阵。    
**buildspec**  
可选。数组，其中包含用于这些任务的 buildspec 文件的路径和文件名。如果未指定此参数，将使用当前的 buildspec 文件。  
**env**  
可选。这些任务的构建环境覆盖。    
**compute-type**  
数组，包含用于这些任务的计算类型的标识符。请参见[构建环境计算模式和类型](build-env-ref-compute-types.md)中的 **computeType**，了解可能使用的值。  
**image**  
数组，包含用于这些任务的映像的标识符。请参阅 [提供的 Docker 镜像 CodeBuild](build-env-ref-available.md)中的**映像标识符**，了解可能使用的值。  
**variables**  
数组，其中包含这些任务的构建环境中将存在的环境变量。请参阅[env/variables](build-spec-ref.md#build-spec.env.variables)了解更多信息。

以下是构建矩阵 buildspec 条目的示例：

```
batch:
  build-matrix:
    static:
      ignore-failure: false
    dynamic:
      buildspec: 
        - matrix1.yml
        - matrix2.yml
      env:
        variables:
          MY_VAR:
            - VALUE1
            - VALUE2
            - VALUE3
```

有关更多信息，请参阅 [构建矩阵](batch-build.md#batch_build_matrix)。

## `batch/build-fanout`
<a name="build-spec.batch.build-fanout"></a>

定义*构建扇出*。构建扇出用于定义一个任务，该任务拆分为多个并行运行的构建。有关更多信息，请参阅 [在批量构建中执行并行测试](parallel-test.md)。

此元素包含一个可以拆分为多个构建的构建任务。`build-fanout` 部分包含以下属性。

**parallelism**  
必需。将并行运行测试的构建数量。

**ignore-failure**  
可选。一个布尔值，指示是否可以忽略任何扇出构建任务中的失败。**ignore-failure** 的这个值将应用于所有扇出构建。    
**'`false**`'  
默认值。如果任何扇出构建任务失败，则批量构建将失败。  
**'`true**`'  
如果任何扇出构建任务失败，则批量构建仍然可以成功。

以下是构建扇出 buildspec 条目的示例：

```
version: 0.2

batch:
   fast-fail: false 
   build-fanout:
     parallelism: 5
     ignore-failure: false

phases:
  install:
    commands:
      - npm install
   build:
    commands:
      - mkdir -p test-results
      - cd test-results
      - |
        codebuild-tests-run \
         --test-command 'npx jest --runInBand --coverage' \
         --files-search "codebuild-glob-search '**/test/**/*.test.js'" \
         --sharding-strategy 'equal-distribution'
```

有关更多信息，请参阅[构建扇出](batch-build.md#batch_build_fanout)和[使用 `codebuild-tests-run` CLI 命令](parallel-test-tests-run.md)。