CodeBuildのbuildspecでartifactsのサブディレクトリを捨てる

AWS14 January 2021

AWSのCodeBuildでartifactsをS3に保存する際のPathの指定で詰まったのでメモ

仕様

そもそもartifacts生成において以下のような仕様があります

ファイル指定

  • hoge.txt
artifacts:
  files:
      - hoge.txt

この場合、S3に保存した時のartifacts.zip解凍時の形式は以下となります。

├── artifacts
  └── hoge.txt

つまり、artifactsの直下にhoge.txtが配置されます。

サブディレクトリ以下ファイル指定

artifacts:
  files:
      - ${sub_dir_1}/${sub_dir2}/hoge.txt

この場合、S3に保存した時のartifacts.zip解凍時の形式は以下となります。

├── artifacts
  └── ${sub_dir_1}
    └── ${sub_dir_2}
      └── hoge.txt

つまり、サブディレクトリも保存されます。

ここでサブディレクトリは不要な場合が多いのではないでしょうか?

サブディレクトリを捨てる

artifacts:
  files:
      - ${sub_dir_1}/${sub_dir2}/hoge.txt
  discard-paths: yes

discard-paths: yesを指定することで、サブディレクトリを捨てることができます。

├── artifacts
  └── hoge.txt

ちなみに、ワイルドカードもいけます。

さらに細かな仕様は公式のドキュメントで確認ください。

tags: AWS