AWS CodeBuild默认环境变量。

时间:2018-02-02 15:08:30

标签: amazon-web-services amazon-s3 aws-codepipeline aws-codebuild aws-codecommit

我创建了一个Pipeline,它从CodeCommit存储库获取代码,通过CodeBuild构建它并将代码推送到S3存储桶。

对于我的Codebuild,我使用AWS托管图像。 AWS / codebuild /的NodeJS:7.0.0

如果我通过CodeBuild控制台手动启动构建并指定存储库,那么当我在buildspec中运行以下命令时,我会获得存储库URL

- printf ${CODEBUILD_SOURCE_REPO_URL}

但是如果通过推送到存储库自动触发CodeBuild。 CODEBUILD_SOURCE_REPO_URL不返回任何内容

2 个答案:

答案 0 :(得分:1)

如果从代码管道运行该进程,则该进程将为空。

查看以下内容:https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html

CODEBUILD_SOURCE_REPO_URL:输入工件或源代码存储库的URL。对于Amazon S3,它是s3://,后跟存储区名称和输入工件的路径。对于AWS CodeCommit和GitHub,这是存储库的克隆URL。 如果构建源自AWS CodePipeline,则该内容可能为空。

答案 1 :(得分:0)

如果通过CodeCommit连接,则可以使用以下方法拆分字符串以获取更多有用的值,例如“帐户ID”和“回购名称”

echo "Region = ${AWS_REGION}"
echo "Account Id = $(echo $CODEBUILD_BUILD_ARN | cut -f5 -d ':')"
echo "Repo Name = $(echo $CODEBUILD_SOURCE_VERSION | cut -f2 -d '/')"
echo "Commit Id = ${CODEBUILD_RESOLVED_SOURCE_VERSION}"

哪个输出:

Region = us-west-2
Account Id = 0123456789
Repo Name = my-app
Commit Id = a46218c9160f932f2a91748a449b3f9818964642