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

中的批量构建AWS CodeBuild

您可以使用 AWS CodeBuild 通过批处理构建来运行项目的并发和协调构建。

安全角色

批处理构建在批处理配置中引入了新的安全角色。此新角色是必需的,因为 CodeBuild 必须能够代表您调用 StartBuildStopBuildRetryBuild 操作,才能将构建作为批处理的一部分运行。客户应使用新的角色,而不是他们在构建中使用的相同角色,有两个原因:

  • 授予构建角色 StartBuildStopBuildRetryBuild 权限将允许单个构建通过 buildspec 启动更多构建。

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

批量构建类型

CodeBuild 支持以下批量生成类型:

生成图

构建图定义了一组任务,这些任务依赖于批处理中的其他任务。

以下示例定义一个创建依赖关系链的构建图。

batch: fast-fail: false build-graph: - identifier: build1 env: compute-type: BUILD_GENERAL1_SMALL - identifier: build2 env: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build1 - identifier: build3 env: compute-type: BUILD_GENERAL1_LARGE depend-on: - build2

在此示例中:

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

  • build2 依赖于 build1,因此 build2build1 完成后运行。

  • build3 依赖于 build2,因此 build3build2 完成后运行。

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

内部版本列表

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

以下示例定义一个生成列表。和 linux_small 构建将并行运行。windows_medium

batch: fast-fail: false build-list: ignore-failure: true - identifier: linux_small env: compute-type: BUILD_GENERAL1_SMALL - identifier: windows_medium env: type: WINDOWS_SERVER_2019_CONTAINER image: aws/codebuild/windows-base:2019-1.0 compute-type: BUILD_GENERAL1_MEDIUM

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

生成矩阵

构建矩阵定义将与不同环境并行运行的任务。CodeBuild 为每个可能的环境配置创建一个单独的构建。

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

batch: build-matrix: static: ignore-failure: false env: type: LINUX_CONTAINER privileged-mode: true dynamic: env: image: - aws/codebuild/amazonlinux2-x86_64-standard:3.0 - aws/codebuild/windows-base:2019-1.0 variables: MY_VAR: - VALUE1 - VALUE2 - VALUE3

在此示例中,CodeBuild 会创建六个生成:

  • aws/codebuild/amazonlinux2-x86_64-standard:3.0 / MY_VAR=VALUE1

  • aws/codebuild/amazonlinux2-x86_64-standard:3.0 / MY_VAR=VALUE2

  • aws/codebuild/amazonlinux2-x86_64-standard:3.0 / MY_VAR=VALUE3

  • aws/codebuild/windows-base:2019-1.0 / MY_VAR=VALUE1

  • aws/codebuild/windows-base:2019-1.0 / MY_VAR=VALUE2

  • aws/codebuild/windows-base:2019-1.0 / MY_VAR=VALUE3

每个构建将具有以下设置:

  • ignore-failure设置为false

  • env/type设置为LINUX_CONTAINER

  • env/privileged- 模式设置为true

这些构建并行运行。

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

更多信息

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