AWS CodeBuild 提供了您可以在构建命令中使用的多个环境变量:
- AWS_DEFAULT_REGION
-
运行构建的 AWS 区域(例如,
us-east-1
)。此环境变量主要由 AWS CLI 使用。 - AWS_REGION
-
运行构建的 AWS 区域(例如,
us-east-1
)。此环境变量主要由 AWS 开发工具包使用。 - CODEBUILD_BATCH_BUILD_IDENTIFIER
-
批量构建中构建的标识符。这是在批处理 buildspec 中指定的。有关更多信息,请参阅批量构建 buildspec 参考。
- CODEBUILD_BUILD_ARN
-
构建的 Amazon 资源名称 (ARN) (例如,
arn:aws:codebuild:
)。region-ID
:account-ID
:build/codebuild-demo-project:b1e6661e-e4f2-4156-9ab9-82a19EXAMPLE - CODEBUILD_BUILD_ID
-
构建的 CodeBuild ID(例如,
codebuild-demo-project:b1e6661e-e4f2-4156-9ab9-82a19EXAMPLE
)。 - CODEBUILD_BUILD_IMAGE
-
CodeBuild 构建映像标识符(例如,
aws/codebuild/standard:2.0
)。 - CODEBUILD_BUILD_NUMBER
-
项目的当前构建编号。
- CODEBUILD_BUILD_SUCCEEDING
-
无论当前构建是否成功。如果构建失败,设置为
0
;如果构建成功,设置为1
。 - CODEBUILD_INITIATOR
-
启动构建的实体。如果 CodePipeline 启动了构建,那么这就是管道的名称(例如
codepipeline/my-demo-pipeline
)。如果用户启动了构建,那么这就是用户的名称(例如MyUserName
)。如果适用于 CodeBuild 的 Jenkins 插件启动了构建,那么这就是字符串CodeBuild-Jenkins-Plugin
。 - CODEBUILD_KMS_KEY_ID
-
CodeBuild 用于加密构建输出构件的 AWS KMS 密钥的标识符(例如,
arn:aws:kms:
或region-ID
:account-ID
:key/key-ID
alias/
)。key-alias
- CODEBUILD_LOG_PATH
-
用于构建的 CloudWatch Logs 日志流名称。
- CODEBUILD_PUBLIC_BUILD_URL
-
此构建在公共构建网站上的构建结果的 URL。仅当构建项目启用了公共构建时,才会设置此变量。有关更多信息,请参阅 获取公共构建项目 URL。
- CODEBUILD_RESOLVED_SOURCE_VERSION
-
构建的源代码的版本标识符。内容取决于源代码存储库:
- CodeCommit、GitHub、GitHub Enterprise Server 和 Bitbucket
-
此变量包含提交 ID。
- CodePipeline
-
此变量包含 CodePipeline 提供的源修订。
如果 CodePipeline 无法解析源修订,例如当源是未启用版本控制的 Amazon S3 存储桶时,则不会设置此环境变量。
- Amazon S3
-
此变量未设置。
如果适用,该
CODEBUILD_RESOLVED_SOURCE_VERSION
变量仅在DOWNLOAD_SOURCE
阶段之后才可用。 - CODEBUILD_SOURCE_REPO_URL
-
输入构件或源代码存储库的 URL。对于 Amazon S3,这是
s3://
,后跟存储桶名称和输入构件的路径。对于 CodeCommit 和 GitHub,这是存储库的克隆 URL。如果构建源自 CodePipeline,则此环境变量可能为空。对于辅助源,辅助源存储库 URL 的环境变量是
CODEBUILD_SOURCE_REPO_URL_
,其中<sourceIdentifier>
是您创建的源标识符。<sourceIdentifier>
- CODEBUILD_SOURCE_VERSION
-
值的格式取决于源存储库。
-
对于 Amazon S3,这是与输入构件关联的版本 ID。
-
对于 CodeCommit,这是与要构建的源代码的版本相关联的提交 ID 或分支名称。
-
对于 GitHub、GitHub Enterprise Server 和 Bitbucket,这是与要生成的源代码的版本相关联的提交 ID、分支名称或标签名称。
注意
对于由 Webhook 拉取请求事件触发的 GitHub 或 GitHub Enterprise Server 构建,这是
pr/
。pull-request-number
对于辅助源,辅助源版本的环境变量是
CODEBUILD_SOURCE_VERSION_
,其中<sourceIdentifier>
是您创建的源标识符。有关更多信息,请参阅多输入源和输出构件示例。<sourceIdentifier>
-
- CODEBUILD_SRC_DIR
-
CodeBuild 用于构建的目录路径(例如,
/tmp/src123456789/src
)。对于辅助源,辅助源目录的环境变量是
CODEBUILD_SRC_DIR_
,其中<sourceIdentifier>
是您创建的源标识符。有关更多信息,请参阅 多输入源和输出构件示例。<sourceIdentifier>
- CODEBUILD_START_TIME
-
指定为 Unix 时间戳的构建开始时间(以毫秒为单位)。
- CODEBUILD_WEBHOOK_ACTOR_ACCOUNT_ID
-
触发 Webhook 事件的用户的账户 ID。
- CODEBUILD_WEBHOOK_BASE_REF
-
触发当前构建的 Webhook 事件的基本引用名称。对于拉取请求,这是分支引用。
- CODEBUILD_WEBHOOK_EVENT
-
触发当前构建的 Webhook 事件。
- CODEBUILD_WEBHOOK_MERGE_COMMIT
-
用于构建的合并提交的标识符。将 Bitbucket 拉取请求与压缩策略合并且拉取请求分支关闭时,会设置该变量。在这种情况下,原始拉取请求提交不再存在,该环境变量将包含压缩后的合并提交的标识符。
- CODEBUILD_WEBHOOK_PREV_COMMIT
-
在触发当前构建的 Webhook 推送事件之前最新提交的 ID。
- CODEBUILD_WEBHOOK_HEAD_REF
-
触发当前构建的 Webhook 事件的头部引用名称。它可以是分支引用或标签引用。
- CODEBUILD_WEBHOOK_TRIGGER
-
显示触发构建的 Webhook 事件。此变量仅适用于 Webhook 触发的构建。该值是从通过 GitHub、GitHub Enterprise Server 或 Bitbucket 发送到 CodeBuild 的有效载荷解析的。该值的格式取决于触发构建的事件类型。
-
对于拉取请求触发的构建,这是
pr/
。pull-request-number
-
对于通过创建新分支或将提交操作推送到分支而触发的构建,这是
branch/
。branch-name
-
对于通过将标签推送到存储库而触发的构建,这是
tag/
。tag-name
-
- HOME
-
此环境变量始终设置为
/root
。
AWS CodeBuild 还支持一组用于自托管运行器构建的环境变量。要了解有关 CodeBuild 自托管运行器的更多信息,请参阅教程:配置 CodeBuild 托管的 GitHub Actions 运行器。
- CODEBUILD_RUNNER_OWNER
-
触发自托管运行器构建的存储库的拥有者。
- CODEBUILD_RUNNER_REPO
-
触发自托管运行器构建的存储库的名称。
- CODEBUILD_RUNNER_REPO_DOMAIN
-
触发自托管运行器构建的存储库的域。仅指定的 GitHub Enterprise 构建。
- CODEBUILD_WEBHOOK_LABEL
-
用于在构建期间配置构建覆盖和自托管运行器的标签。
- CODEBUILD_WEBHOOK_RUN_ID
-
与构建关联的工作流的运行 ID。
- CODEBUILD_WEBHOOK_JOB_ID
-
与构建关联的作业的作业 ID。
- CODEBUILD_WEBHOOK_WORKFLOW_NAME
-
与构建关联的工作流的名称(如果存在于 webhook 请求有效载荷中)。
- CODEBUILD_RUNNER_WITH_BUILDSPEC
-
如果在自托管运行器请求标签中配置了 buildspec 覆盖,则将其设置为
true
。
您也可以为构建环境提供您自己的环境变量。有关更多信息,请参阅以下主题:
要列出构建环境中的所有可用环境变量,在构建期间,您可以运行 printenv
命令(针对基于 Linux 的构建环境)或 "Get-ChildItem Env:"
(针对基于 Windows 的构建环境)。除之前列出的这些变量之外,以 CODEBUILD_
开始的环境变量供 CodeBuild 内部使用。它们不应用于您的构建命令。
重要
我们强烈建议不要使用环境变量存储敏感值,尤其是 AWS 访问密钥 ID。使用 CodeBuild 控制台和 AWS CLI 等工具能够以纯文本格式显示环境变量。
我们建议您将敏感值存储在 Amazon EC2 Systems Manager Parameter Store 中,然后从您的 buildspec 中检索它们。要存储敏感值,请参阅《Amazon EC2 Systems Manager 用户指南》中的 Systems Manager Parameter Store 和演练:创建和测试参数(控制台)。要检索它们,请参阅buildspec 语法中的 parameter-store
映射。