Batch 构建Amazon CodeBuild - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Batch 构建Amazon CodeBuild

您可以使用Amazon CodeBuild使用批量构建运行项目的并行和协调构建。

安全角色

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

  • 赋予构建角色StartBuildStopBuild, 和RetryBuild权限将允许单个构建通过 buildspec 启动更多构建。

  • CodeBuild 批处理构建提供限制,限制可用于批处理中生成的构建和计算类型的数量。如果构建角色具有这些权限,则构建本身可能会绕过这些限制。

Batch 构建类型

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有依赖build1build2在之后运行build1完成。

  • build3有依赖build2build3在之后运行build2完成。

有关构建图构建语法的更多信息,请参阅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

有关构建列表构建语法的更多信息,请参阅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/amazonlinux2-x86_64-standard:3.0

  • env/privileged-mode设置为true

这些构建并行运行。

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

Batch 报告模式

如果项目的源提供商是 Bitbucket、GitHub 或 GitHub Enterprise,并且您的项目配置为向源提供商报告构建状态,则可以选择希望将批量构建状态发送给源提供商的方式。您可以选择将状态作为批次的单个聚合状态报告发送,也可以单独报告批中每个生成的状态。

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

更多信息

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