2

使用 CodeBuild,我编译了我的 SpringBoot 应用程序并将生成的 jar 放在一个名为deploy/. 最后,我buildspec.yml提供:

artifacts:
   files:
    - deploy/*

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

deploy.zip
  - deploy/
     - appspec.yml
     - app.jar
     - ...

这导致 CodeDeploy 找不到 的问题appspec.yml,因为它没有在 deploy 文件夹中查找。我一直在努力克服这个问题,在构建过程结束时提供一个 zip 文件作为工件,但随后在管道中它又被压缩了..

任何想法如何解决这个问题将不胜感激。

4

2 回答 2

2

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

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

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

于 2017-02-16T22:53:26.093 回答
0

你可以加discard-paths: yes

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

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

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

于 2017-01-22T04:46:06.700 回答