AWS CodePipeline 以比 运行 个步骤更没用的格式将工件添加到 S3
AWS CodePipeline adding artifacts to S3 in less useful format than running steps individually
我已经建立了一个 CodePipeline,最终目标是让核心服务驻留在 S3 上,作为其他管道依赖的私有 Maven 存储库。当核心服务更新并推送到 AWS CodeCommit 时,管道应该 运行,对其进行测试,使用 maven docker 图像构建一个 jar,然后将生成的 jar 推送到 S3,在那里它可以被访问其他需要的应用程序。
不幸的是,虽然 CodeBuild 服务完全按照我想要的方式工作,将 XYZCore.jar 上传到存储桶上的 /release,但自动管道本身却没有。相反,它会上传到 "XYZCorePipeline" 文件夹,其中包含构建的输入和输出工件。输出工件本身是一个 zip 文件,它只是一个随机字符串。我检查了管道,它正确地使用了服务,但是管道特定的构建总是在那里输出,而 CodeBuild 服务的独立构建输出我想要的方式,让我可以利用版本控制等功能。修复设置以使两个构建匹配的最佳方法是什么?
很遗憾,CodePipeline 不支持此用例。
作为解决方法,您可以通过从 buildspec.yml post_build.
调用 AWS CLI (aws s3 cp ...) 将工件上传到 S3
我已经建立了一个 CodePipeline,最终目标是让核心服务驻留在 S3 上,作为其他管道依赖的私有 Maven 存储库。当核心服务更新并推送到 AWS CodeCommit 时,管道应该 运行,对其进行测试,使用 maven docker 图像构建一个 jar,然后将生成的 jar 推送到 S3,在那里它可以被访问其他需要的应用程序。
不幸的是,虽然 CodeBuild 服务完全按照我想要的方式工作,将 XYZCore.jar 上传到存储桶上的 /release,但自动管道本身却没有。相反,它会上传到 "XYZCorePipeline" 文件夹,其中包含构建的输入和输出工件。输出工件本身是一个 zip 文件,它只是一个随机字符串。我检查了管道,它正确地使用了服务,但是管道特定的构建总是在那里输出,而 CodeBuild 服务的独立构建输出我想要的方式,让我可以利用版本控制等功能。修复设置以使两个构建匹配的最佳方法是什么?
很遗憾,CodePipeline 不支持此用例。
作为解决方法,您可以通过从 buildspec.yml post_build.
调用 AWS CLI (aws s3 cp ...) 将工件上传到 S3