本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS CodeBuild 构建和测试操作参考
允许您将构建和测试作为管道的一部分来运行。当您运行 CodeBuild 构建或测试操作时,在构建规范中指定的命令会在 CodeBuild 容器内部运行。在运行命令的容器内部,所有指定为 CodeBuild 操作输入构件的构件均可用。CodeBuild 可以提供构件或测试操作。有关更多信息,请参阅 《AWS CodeBuild 用户指南》。
当您在控制台中使用 CodePipeline 向导来创建构建项目时,CodeBuild 构建项目会显示的源提供方为 CodePipeline。当您在 CodeBuild 控制台中创建构建项目时,您无法指定 CodePipeline 作为源提供方;但是,将构建操作添加到管道中会调整 CodeBuild 控制台中的源。有关更多信息,请参阅 AWS CodeBuild API 参考 中的项目源。
操作类型
-
类别:
Build
或Test
-
拥有者:
AWS
-
提供方:
CodeBuild
-
版本:
1
配置参数
- ProjectName
-
必需:是
ProjectName
是 CodeBuild 中构建项目的名称。 - PrimarySource
-
必需:条件
PrimarySource
参数的值必须是操作的一个输入构件的名称。CodeBuild 会查找构建规范文件,并在包含此构件的解压缩版本的目录中运行构建规范命令。如果为一个 CodeBuild 操作指定多个输入构件,则此参数是必需的。当操作仅有一个源构件时,
PrimarySource
构件默认为该构件。 - BatchEnabled
-
必需:否
BatchEnabled
参数的布尔值允许操作在同一个构建执行中运行多个构建。启用此选项后,
CombineArtifacts
选项将变为可用。有关启用批量构建的管道示例,请参阅 CodePipeline 与 CodeBuild 和批量构建集成。
- CombineArtifacts
-
必需:否
CombineArtifacts
参数的布尔值将来自一个批量构建的所有构建构件合并为单个构件文件,将其用于构建操作。要使用此选项,必须启用
BatchEnabled
参数。 - EnvironmentVariables
-
必需:否
此参数的值用于为管道中的 CodeBuild 操作设置环境变量。
EnvironmentVariables
参数的值采用环境变量对象的 JSON 数组形式。请参阅操作声明(CodeBuild 示例)中的示例参数。每个对象有三个均为字符串的部分:
-
name
:环境变量的名称或键。 -
value
:环境变量的值。使用PARAMETER_STORE
或SECRETS_MANAGER
类型时,此值必须分别是您分别存储在 AWS Systems Manager Parameter Store 中的参数的名称,或您存储在 AWS Secrets Manager 中的密钥。注意
我们强烈建议不要使用环境变量存储敏感值,尤其是 AWS 凭证。当您使用 CodeBuild 控制台或 AWS CLI 时,环境变量将以明文显示。对于敏感值,我们建议您改用
SECRETS_MANAGER
类型。 -
type
:(可选)环境变量的类型。有效值为PARAMETER_STORE
、SECRETS_MANAGER
或PLAINTEXT
。如果未指定,则此值默认为PLAINTEXT
。
注意
为环境变量配置输入
name
、value
和type
时,特别是在环境变量包含 CodePipeline 输出变量语法时,请不要超过配置值字段的 1000 字符限制。如果超过此限制,将会返回验证错误。有关更多信息,请参阅 AWS CodeBuild API 参考中的 EnvironmentVariable。有关采用环境变量(解析为 GitHub 分支名称)的 CodeBuild 操作示例,请参阅示例:将 BranchName 变量与 CodeBuild 环境变量一起使用。
-
输入构件
-
构件数:
1 to 5
-
描述:CodeBuild 会查找构建规范文件,并从主源构件的目录运行构建规范命令。如果为 CodeBuild 操作指定了多个输入源,则必须在 CodePipeline 中使用
PrimarySource
操作配置参数设置此构件。各个输入构件会解压缩到各自的目录,其位置存储在环境变量中。主源构件的目录通过
$CODEBUILD_SRC_DIR
提供。所有其他输入构件的目录通过$CODEBUILD_SRC_DIR_yourInputArtifactName
提供。注意
在您 CodeBuild 项目中配置的构件会成为供管道中的 CodeBuild 操作使用的输入构件。
输出构件
-
构件数:
0 to 5
-
描述:它们可用于使 CodeBuild 构建规范文件中定义的构件可供管道中的后续操作使用。在仅定义了一个输出构件时,此构件可以直接在构建规范文件的
artifacts
部分下定义。在指定了多个输出构件时,引用的所有构件都必须在构建规范文件中定义为辅助构件。CodePipeline 中输出构件的名称必须与构建规范文件中的构件标识符匹配。注意
在您 CodeBuild 项目中配置的构件会成为管道操作中的 CodePipeline 输入构件。
如果为批量构建选择了
CombineArtifacts
参数,则输出构件位置将包含在同一执行中运行的多个构建的合并构件。
输出变量
此操作将生成在构建中导出的所有环境变量作为变量。有关如何导出环境变量的更多详细信息,请参阅 AWS CodeBuild API 指南 中的环境变量。
有关在 CodePipeline 中使用 CodeBuild 环境变量的更多信息,请参阅 CodeBuild 操作输出变量中的示例。有关可以在 CodeBuild 中使用的环境变量的列表,请参阅 AWS CodeBuild 用户指南 中的构建环境中的环境变量。
操作声明(CodeBuild 示例)
另请参阅
下列相关资源在您使用此操作的过程中会有所帮助。
-
AWS CodeBuild 用户指南:有关具有 CodeBuild 操作的示例管道,请参阅将 CodePipeline 与 CodeBuild 结合使用来测试代码和运行构建。有关具有多个输入和输出 CodeBuild 构件的项目示例,请参阅 CodePipeline 与 CodeBuild 集成和多个输入源和输出构件示例以及多个输入源和输出构件示例。
-
教程:创建用于构建和测试您的 Android 应用程序的管道 AWS Device Farm:本教程提供了一个示例构建规范文件和示例应用程序,以创建具有 GitHub 源的管道,用于通过 CodeBuild 和 AWS Device Farm 构建和测试一款 Android 应用。
-
CodeBuild 的构建规范参考:此参考主题提供了一些定义和示例,用于了解 CodeBuild 构建规范文件。有关可以在 CodeBuild 中使用的环境变量的列表,请参阅 AWS CodeBuild 用户指南 中的构建环境中的环境变量。