选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

批量运行构建

聚焦模式
批量运行构建 - AWS CodeBuild

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

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

您可以使用使用批量生成 AWS CodeBuild 来运行项目的并行和协调生成。

安全角色

批量构建为批量配置引入了全新的安全角色。这个新角色是必需的,因为 CodeBuild 必须能够代表你调用StartBuildStopBuild、和RetryBuild操作才能将生成作为批处理的一部分运行。客户应该使用新角色,而不是他们在构建中使用的角色,原因有两个:

  • 向构建角色授予 StartBuildStopBuildRetryBuild 权限后,将允许单个构建通过 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 - identifier: build4 env: compute-type: ARM_LAMBDA_1GB - identifier: build5 env: fleet: fleet_name

在本示例中:

  • 先运行 build1,因为它没有依赖项。

  • 由于 build2build1 存在依赖关系,因此 build2 会在完成 build1 后运行。

  • 由于 build3build2 存在依赖关系,因此 build3 会在完成 build2 后运行。

有关构建图 buildspec 语法的更多信息,请参阅batch/build-graph

构建列表

构建列表定义了多个并行运行的任务。

以下示例定义了构建列表。build1build2 构建将并行运行。

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

有关构建列表 buildspec 语法的更多信息,请参阅batch/build-list

构建矩阵

生成矩阵定义了并行运行的具有不同配置的任务。 CodeBuild 为每种可能的配置组合创建单独的版本。

以下示例显示了一个具有两个 buildspec 文件和三个环境变量值的构建矩阵。

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

在此示例中, CodeBuild 创建了六个版本:

  • 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/amazonlinux-x86_64-standard:4.0

  • env/privileged-mode 设置为 true

这些构建并行运行。

有关构建矩阵 buildspec 语法的更多信息,请参阅batch/build-matrix

建立粉丝群

构建 fanout 定义了一个任务,该任务将在批次中拆分为多个构建。这可以用于并行运行测试。 CodeBuild 根据parallelism字段中设置的值,为每个测试用例分片创建单独的构建。

以下示例定义了一个构建 fanout,它创建了五个并行运行的构建。

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'

在此示例中,假设有 100 个测试需要运行,则 CodeBuild 创建五个版本,每个版本并行运行 20 个测试。

有关构建图 buildspec 语法的更多信息,请参阅batch/build-fanout

批量报告模式

如果您的项目的源提供商是 Bitbucket GitHub、或 E GitHub nterprise,并且您的项目配置为向源提供商报告构建状态,则可以选择如何将批量生成状态发送给源提供商。您可以选择将状态作为批处理的单个汇总状态报告发送,也可以单独报告批处理中每个构建的状态。

有关更多信息,请参阅以下主题:

更多信息

有关更多信息,请参阅以下主题:

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。