AWS CodeBuild工件处理

时间:2019-08-07 22:07:09

标签: aws-code-deploy aws-codepipeline aws-codebuild

所以我对SSR项目有一个反应,我正在尝试创建CI / CD管道。我的项目需要部署以下工件:

    Webpack创建的
  • dist文件夹
  • 代码部署所需的
  • appspec.yml文件
  • 脚本文件夹,用于存放在appspec.yml中引用的脚本

当我尝试使用此buildspec.yml逐个获取文件时:

version: 0.2

phases:
 install:
   runtime-versions:
     nodejs: 10
   commands:
     - npm install
 build:
   commands:
     - npm run build
artifacts:
  files:
    - 'dist/*'
    - 'appspec.yml'
    - 'deploy-scripts'

我得到的dist仅包含部分内容以及appspec.yml和deploy脚本文件夹。

然后我尝试了另一种方法:

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 10
    commands:
      - npm install
  build:
    commands:
      - npm run build
artifacts:
  files:
    - '**/*'
  base-directory: "dist"
  discard-paths: yes

dist文件夹中包含脚本和appspec文件。现在可以部署了,但是我丢失了dist的文件夹结构,这是我的部署脚本所必需的。

我需要获取dist在其文件夹结构中的所有内容。以及脚本和appspec.yml文件。脚本和appspec.yml不能放在dist中,但是dist需要具有所有内容。

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

解决方案是使用第一个buildspec文件,并将“ ** / *”添加到dist目录。

所以在dist行中,它最终是这样的:“ dist /**/*”。

因此,如果我们将其应用于一般上下文,那么在构建阶段中,只要您希望将目录与单个文件一起发送,就可以像这样添加它:

“ [目录名称] / ** / *”

这将以递归的方式获取目录及其中的所有内容。