作 ▸
AWS CodeBuildのbuildspec.ymlをルートじゃなくてサブディレクトリ以下に置く場合
CodeBuildのビルド設定ファイル buildspec.yml
は基本的にはソースディレクトリのルートに置くことになっているが、人生いろいろあるのでサブディレクトリ以下に置くこともあるかもしれない
例えば画面とAPIのソースコードが同じリポジトリに入ってるとかで frontend/deploy/buildspec.yml
だったりするかもしれない
そんなときでも buildspec.yml
の中身はカレントディレクトリがルートであることを念頭に書く
version: 0.2
phases:
install:
runtime-versions:
nodejs: 12
commands:
# frontend/package.json があり、ビルドしたファイルは frontend/dist 以下に生成されるとする
- cd ./frontend
- npm install --production
- npm run build
artifacts:
files:
# ルートから見た場所を指定する
- frontend/dist/*
# ↓これをyesにすると中間のパス (ここでは frontend/dist) を無視して対象のファイルだけを出力できる
discard-paths: yes
こうすると BuildArtifact の中身は frontend/dist
以下のファイルだけがキレイに入ってる
この例の BuildArtifact はCodePipelineのデプロイステージでS3に直接お出ししてSPAにする感じです