【问题标题】:How can I upload build artifacts to s3 bucket from codepipeline?如何从 codepipeline 将构建工件上传到 s3 存储桶?
【发布时间】:2021-03-29 17:54:13
【问题描述】:

我有一个代码管道,可以在不同阶段触发几个代码构建项目。在我的代码构建项目中,我有这个配置

#codebuild.yml

Artifacts:
        Type: CODEPIPELINE
...
Source:
        Type: CODEPIPELINE
        BuildSpec: buildspec.yml

# buildspec.yml

version: 0.2
phases:
   ...
artifacts:
                name: test-result
                files:
                  - '**/*'
                  - '*'

在此配置中,它指定工件并使用CODEPIPELINE 作为工件类型。那么在codepipeline中,如何将它们上传到s3存储桶?

我能想到的就是再写一个codebuild项目,用aws s3命令行上传文件。但是太手动了。是否有自动完成这项工作的方法?

构建工件包括测试结果,无论之前是否失败,我都想上传测试结果。是否有可能在代码管道中实现这一点?

【问题讨论】:

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


    【解决方案1】:

    如何将它们上传到 s3 存储桶?

    有两种方法。您已经指出的一个 - 使用 CB 操作(相同或不同)使用 AWS CLI 将文件复制到 S3。

    第二,是使用S3 deploy action。这允许您将压缩或解压缩的工件部署到目标存储桶。

    【讨论】:

    • 无论前一个操作是否失败,我如何确保操作始终运行?谢谢。
    • @JoeyYiZhao 我不认为你可以。来自docs:“失败,当阶段中的操作未成功完成时。修订不会过渡到阶段中的下一个操作或管道中的下一个阶段”。因此,如果一项操作失败,则后续操作不会执行。您可以并行执行操作,因此如果您的测试操作不依赖于其他操作,您可以将其作为并行操作运行。
    猜你喜欢
    • 2018-02-07
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 2015-03-12
    • 2018-04-25
    • 1970-01-01
    • 2018-03-11
    • 2017-04-19
    相关资源
    最近更新 更多