无法使用CodeDeploy部署CodeBuild中的工件

时间:2017-01-12 14:59:15

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

使用CodeBuild,我编译我的SpringBoot应用程序并将生成的jar放在名为'的文件夹中。我最后在"提供:

deploy/

当我将其插入CodePipeline时,这会在S3中创建一个zip文件。但问题是,这个zip文件包含根文件夹,即buildspec.yml。所以zip文件的结构是:

artifacts:
   files:
    - deploy/*

这导致CodeDeploy无法找到deploy的问题,因为它没有在deploy文件夹中查找。我一直在努力克服这个问题,在构建过程结束时提供一个zip文件作为工件,但是在管道中它再次被拉链...

任何想法如何解决这个问题将非常感激。

2 个答案:

答案 0 :(得分:2)

您可以在名为base-directory的工件部分中添加一个新标志,以指定工件包的基本路径。这将允许您从工件中截断deploy/路径,而不会丢失其下方的其余结构。

artifacts:
  files:
    - **/*
  base-directory: deploy

http://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html

答案 1 :(得分:0)

您可以添加discard-paths: yes

artifacts:
  files:
    - deploy/*
  discard-paths: yes

请记住,它会丢弃所有路径,包括子目录

来源:http://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html