【问题标题】:AWS CodeBuild artifact handlingAWS CodeBuild 工件处理
【发布时间】:2019-08-07 22:07:09
【问题描述】:

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

  • 由 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 和部署脚本文件夹。

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

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 需要包含它的所有内容。

有人可以帮忙吗?

【问题讨论】:

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


【解决方案1】:

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

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

因此,如果我们将其应用于一般上下文,则任何时候您想要在构建阶段获取要与单个文件一起发送的目录,您都可以像这样添加它:

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

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

【讨论】:

  • 这个答案可以通过添加你的工作buildspec.yml而不是解释来改进。
  • 我绝对同意,但我不再从事那个项目,我们最终改变了它的基础设施,所以我不能再这样做了。
猜你喜欢
  • 1970-01-01
  • 2017-06-08
  • 2019-06-25
  • 2020-11-24
  • 2018-07-18
  • 2022-12-07
  • 2017-05-28
  • 2019-09-17
  • 2021-04-11
相关资源
最近更新 更多