Amazon web services AWS代码管道以不如单独运行步骤有用的格式向S3添加工件
我已经建立了一个代码管道,最终目标是让核心服务作为私有maven repo驻留在S3上,供其他管道依赖。当核心服务更新并推送到AWS CodeCommit时,管道应该运行、测试它,使用maven docker映像构建一个jar,然后将生成的jar推送到S3,其他应用程序可以根据需要访问它Amazon web services AWS代码管道以不如单独运行步骤有用的格式向S3添加工件,amazon-web-services,amazon-s3,aws-codepipeline,Amazon Web Services,Amazon S3,Aws Codepipeline,我已经建立了一个代码管道,最终目标是让核心服务作为私有maven repo驻留在S3上,供其他管道依赖。当核心服务更新并推送到AWS CodeCommit时,管道应该运行、测试它,使用maven docker映像构建一个jar,然后将生成的jar推送到S3,其他应用程序可以根据需要访问它 不幸的是,虽然CodeBuild服务正是按照我所希望的方式工作的,将XYZCore.jar上传到bucket上的/release,但自动管道本身并没有。相反,它上传到“xyzcorepipline”文件夹,其中
不幸的是,虽然CodeBuild服务正是按照我所希望的方式工作的,将XYZCore.jar上传到bucket上的/release,但自动管道本身并没有。相反,它上传到“xyzcorepipline”文件夹,其中包含构建的输入和输出工件。输出工件本身是一个zip文件,它只是一个随机字符串。我检查了管道,它正确地使用了服务,但是管道特定的构建总是在那里输出,而CodeBuild服务的独立构建则输出我希望的方式,这使我能够利用版本控制之类的功能。对我来说,修复设置以使两个版本匹配的最佳方法是什么?不幸的是,CodePipeline不支持此用例
作为一种解决方法,您可以通过从buildspec.yml post_build调用AWS CLI(AWS S3 cp…)将工件上载到S3。谢谢。我可能不得不这样做——我希望避免这样做,因为CodeBuild服务的工作方式正是我所希望的。@A.McDaniel请注意,即使
BUILD
失败,POST\u BUILD
也会执行。这允许您恢复部分工件以调试生成/测试失败,但在您的情况下可能不是所需的行为。此处描述了生成后执行标准: