如何使用 CodeBuild 将生成的文件夹内容上传到 S3?
How to upload a generated folder content into S3 using CodeBuild?
我正在尝试在 AWS 上配置一个 CodePipeline,它将我的 Nuxt 网站放在 Github、运行 命令 npm run generate
上以生成静态网站,然后上传 dist
S3 存储桶上的文件夹。
这是我的 buildspec.yml
样子:
version: 0.2
phases:
install:
commands:
- npm install
build:
commands:
- npm run generate
post_build:
commands:
- aws s3 sync dist $S3_BUCKET
我得到的错误是:The user-provided path dist does not exist.
有人知道如何更正这个吗?我读了很多关于人工制品的文章,但我以前从未使用过它们……
提前致谢,
您可以使用工件将 dist 文件夹上传到 s3。我建议不要使用 post 构建命令来实现此目的,因为 post 构建命令即使在构建失败时也会运行,这是 codebuild 的已知限制。只需将您的构建规范替换为以下内容即可。
version: 0.2
phases:
install:
commands:
- npm install
build:
commands:
- npm run generate
artifacts:
files:
- '**/*'
base-directory: 'dist'
'**/*'表示将上传基目录"dist"下的所有文件和文件夹。您需要在 aws 控制台(浏览器)中提及您的存储桶名称。
还要确保您的代码构建 IAM 角色具有足够的权限来访问您的存储桶。
我正在尝试在 AWS 上配置一个 CodePipeline,它将我的 Nuxt 网站放在 Github、运行 命令 npm run generate
上以生成静态网站,然后上传 dist
S3 存储桶上的文件夹。
这是我的 buildspec.yml
样子:
version: 0.2
phases:
install:
commands:
- npm install
build:
commands:
- npm run generate
post_build:
commands:
- aws s3 sync dist $S3_BUCKET
我得到的错误是:The user-provided path dist does not exist.
有人知道如何更正这个吗?我读了很多关于人工制品的文章,但我以前从未使用过它们……
提前致谢,
您可以使用工件将 dist 文件夹上传到 s3。我建议不要使用 post 构建命令来实现此目的,因为 post 构建命令即使在构建失败时也会运行,这是 codebuild 的已知限制。只需将您的构建规范替换为以下内容即可。
version: 0.2
phases:
install:
commands:
- npm install
build:
commands:
- npm run generate
artifacts:
files:
- '**/*'
base-directory: 'dist'
'**/*'表示将上传基目录"dist"下的所有文件和文件夹。您需要在 aws 控制台(浏览器)中提及您的存储桶名称。