CodeBuild 规则
创建条件时,可以添加 CodeBuild 规则。本节提供对规则参数的参考。有关规则和条件的更多信息,请参阅阶段条件是如何运作的?。
您可以使用 CodeBuild 规则来创建一个条件,当构建项目成功运行且符合规则条件时触发,例如构建成功运行且符合 beforeEntry 条件时。
注意
对于使用跳过结果配置的 beforeEntry 条件,只有以下规则可用:LambdaInvoke 和 VariableCheck。
服务角色策略权限
对于该规则的权限,请将以下内容添加到 CodePipeline 服务角色策略语句中。将权限范围缩小到资源级别。
{ "Effect": "Allow", "Action": [ "codebuild:BatchGetBuilds", "codebuild:StartBuild" ], "Resource": "resource_ARN" },
规则类型
-
类别:
Rule -
拥有者:
AWS -
提供方:
CodeBuild -
版本:
1
配置参数
- ProjectName
-
必需:是
ProjectName是 CodeBuild 中构建项目的名称。 - PrimarySource
-
必需:有条件
PrimarySource参数的值必须是操作的一个输入构件的名称。CodeBuild 会查找 buildspec 文件,并在包含此构件的解压缩版本的目录中运行 buildspec 命令。如果为一个 CodeBuild 操作指定多个输入构件,则此参数是必需的。当操作仅有一个源构件时,
PrimarySource构件默认为该构件。 - BatchEnabled
-
必需:否
BatchEnabled参数的布尔值允许操作在同一个构建执行中运行多个构建。启用此选项后,
CombineArtifacts选项将变为可用。有关启用批量构建的管道示例,请参阅 CodePipeline 与 CodeBuild 和批量构建集成。
- CombineArtifacts
-
必需:否
CombineArtifacts参数的布尔值将来自一个批量构建的所有构建构件合并为单个构件文件,将其用于构建操作。要使用此选项,必须启用
BatchEnabled参数。 - EnvironmentVariables
-
必需:否
此参数的值用于为管道中的 CodeBuild 操作设置环境变量。
EnvironmentVariables参数的值采用环境变量对象的 JSON 数组形式。请参阅操作声明(CodeBuild 示例)中的示例参数。每个对象有三个均为字符串的部分:
-
name:环境变量的名称或键。 -
value:环境变量的值。使用PARAMETER_STORE或SECRETS_MANAGER类型时,此值必须分别是您分别存储在 Amazon Systems Manager Parameter Store 中的参数的名称,或您存储在 Amazon Secrets Manager 中的密钥。注意
我们强烈建议不要使用环境变量存储敏感值,尤其是 Amazon 凭证。当您使用 CodeBuild 控制台或 Amazon CLI 时,环境变量将以明文显示。对于敏感值,我们建议您改用
SECRETS_MANAGER类型。 -
type:(可选)环境变量的类型。有效值为PARAMETER_STORE、SECRETS_MANAGER或PLAINTEXT。如果未指定,则此值默认为PLAINTEXT。
注意
为环境变量配置输入
name、value和type时,特别是在环境变量包含 CodePipeline 输出变量语法时,请不要超过配置值字段的 1000 字符限制。如果超过此限制,将会返回验证错误。有关更多信息,请参阅 Amazon CodeBuild API 参考中的 EnvironmentVariable。有关采用环境变量(解析为 GitHub 分支名称)的 CodeBuild 操作示例,请参阅示例:将 BranchName 变量与 CodeBuild 环境变量一起使用。
-
规则配置示例
另请参阅
以下相关资源可在您使用此规则时为您提供帮助。
-
有关规则和条件的更多信息,请参阅《CodePipeline API 指南》中的条件、RuleTypeId 和 RuleExecution。