为了实现(Android)构建和测试流程的自动化,我配置了一个 AWS代码管道,它将首先从 GitHub 获取代码并触发构建(通过 aws codebuild )Build显示为已成功完成,但由于构建过程而生成的工件(apk文件)未上传到s3存储桶(公共存储桶)。日志清楚地表明上传成功,如附件截图所示 codepipeline 也表示所有内容都已成功附加
但是,如果我直接从aws codebuild屏幕运行 aws codebuild项目,会将该工件成功上传到s3存储桶!
我尝试将存储桶权限更改为公共/非公开等。到目前为止还没有成功
答案 0 :(得分:8)
CodePipeline将覆盖CodeBuild的工件桶,我猜它正在将工件移动到自己的Bucket。您可以通过运行以下命令来查看CodePipeline的存储桶。
codepipeline get-pipeline --name PipelineName--query pipeline.[artifactStore]
[
{
"type": "S3",
"location": "codepipeline-us-east-1-xxxxxxxx"
}
]
如果您使用CloudFormation创建管道,则使用ArtifactStore配置存储桶。
更新CodePipeline中的ArtifactStore:
目前,我没有看到通过控制台更新ArtifactStore的方法,但可以使用update-pipeline
命令完成。
获取pipleline详细信息:
aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json
编辑管道以更新artifactStore
中的S3 Bucket,然后运行命令。
aws codepipeline update-pipeline --cli-input-json file://pipeline.json
答案 1 :(得分:0)
我遇到了同样的问题,无法在S3中看到用于保存CodeBuild工件的MyAppBuild
文件夹。注销Web控制台,然后再次登录,该文件夹现在可见。