web-dev-qa-db-ja.com

AWS CodeBuild buildspec.ymlはすべてのファイルとサブフォルダーを再帰的に取得します

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バケットのルートに配置する必要があります。

これまでのところ、ドキュメント herehere および here を試してみました。私は使ってみました:

  • **/*は、フォルダーpublic内のすべてを再帰的に取得しますが、S3バケットはフォルダーへのパスを持つため、index.htmlはルートにありません。
  • discard-paths: yesは、publicフォルダーへのパスを削除しますが、S3バケット内では、すべてのファイルがルートにあり、サブフォルダー構造は保持されません。
  • base-directory:説明どおり ここ
  • artifacts: secondary-artifacts: artifact1: files: - directory/file artifact2: files: - directory/file2を使用してフォルダー構造を維持しましたが、ビルドが失敗しました。
  • 上記のすべての構文のさまざまな組み合わせですが、ビルドが失敗しました。
7
Viet

これでうまくいきました。

    /
    buildspec.yml
    /public
        index.html
        /js
        /img
        appspec.yml
    /src

buildspec.yml

    artifacts:
    files:
      - 'public/*'
    discard-paths: yes
0
ReedAccess

私は同様の問題に遭遇し、構文の下の多くの順列が私のために働いた後。

artifacts:
  files:
    - './**/*'
  base-directory: public
  name: websitename