AWS CodePipeline 不将工件上传到 AWS S3

AWS CodePipeline Doesn't upload artifacts to AWS S3

为了实现 (Android) 构建和测试过程的自动化,我配置了一个 AWS 代码管道,它将首先从 GitHub 并触发构建(通过 aws codebuild)构建显示为已成功完成,但生成的工件(apk 文件)是构建的结果进程未上传到 s3 存储桶(public 存储桶)。日志清楚地表明上传成功,如所附屏幕截图所示 codepipeline 也显示附件中的一切都是成功的

但是,如果我 运行 aws codebuild 项目直接从 aws codebuild 屏幕,它确实上传 工件成功到 s3 桶!

我尝试将存储桶权限更改为 public/non public 等。到目前为止没有成功

CodePipeline 将覆盖 CodeBuild 的工件桶,我猜它正在将工件移动到它自己的桶中。您可以通过 运行 执行以下命令查看 CodePipeline 的存储桶。

codepipeline get-pipeline --name PipelineName--query pipeline.[artifactStore]

[
    {
        "type": "S3",
        "location": "codepipeline-us-east-1-xxxxxxxx"
    }
]

如果您使用 CloudFormation 创建管道,请使用 ArtifactStore 配置存储桶。

更新 CodePipeline 中的 ArtifactStore: 目前,我没有看到通过控制台更新 ArtifactStore 的方法,但可以使用 update-pipeline 命令完成。

获取管道详细信息:

aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json

编辑管道以更新 artifactStore 中的 S3 存储桶,然后 运行 命令。

aws codepipeline update-pipeline --cli-input-json file://pipeline.json

我遇到了同样的问题,在 S3 中看不到用于保存 CodeBuild 工件的 MyAppBuild 文件夹。从 Web 控制台注销并再次登录,文件夹现在可见。