AWS CodeBuildを使用して、ネストされたpublic
フォルダー内のすべてのファイルとサブフォルダーを取得し、CodePipelineを使用してS3バケットにデプロイしようとしています。それらをすべてフックすることができましたが、必要な出力を取得するためにbuildspec.yml
ファイルを構成するのに苦労していました。
私のフォルダ構造:
<path>/public/
├── 404.html
├── css
│ ├── ...
├── fonts
│ ├── bootstrap
│ │ ├── ...
│ ├── icomoon
│ │ ├── icomoon
│ │ │ ├── ...
│ └── simple-line-icons
│ ├── ...
├── images
│ ├── ...
├── index.html
├── index.xml
├── js
│ ├── ...
└── tags
└── index.xml
public
フォルダー内のすべて(サブフォルダーを含む)をS3バケットのルートに配置する必要があります。
これまでのところ、ドキュメント here 、 here および here を試してみました。私は使ってみました:
**/*
は、フォルダーpublic
内のすべてを再帰的に取得しますが、S3バケットはフォルダーへのパスを持つため、index.html
はルートにありません。discard-paths: yes
は、public
フォルダーへのパスを削除しますが、S3バケット内では、すべてのファイルがルートにあり、サブフォルダー構造は保持されません。base-directory
:説明どおり ここ 。artifacts: secondary-artifacts: artifact1: files: - directory/file artifact2: files: - directory/file2
を使用してフォルダー構造を維持しましたが、ビルドが失敗しました。これでうまくいきました。
/
buildspec.yml
/public
index.html
/js
/img
appspec.yml
/src
buildspec.yml
artifacts:
files:
- 'public/*'
discard-paths: yes
私は同様の問題に遭遇し、構文の下の多くの順列が私のために働いた後。
artifacts:
files:
- './**/*'
base-directory: public
name: websitename