事象
[Container] 2019/04/08 07:11:19 Assembling file list
[Container] 2019/04/08 07:11:19 Expanding test.txt
[Container] 2019/04/08 07:11:19 Skipping invalid artifact path test.txt
[Container] 2019/04/08 07:11:19 Phase complete: UPLOAD_ARTIFACTS State: FAILED
[Container] 2019/04/08 07:11:19 Phase context status code: CLIENT_ERROR Message: no matching artifact paths found
Codebuildでartifactのアップロード先をS3にするも失敗。
ファイルは作られているように見えるが、ちゃんとアップロードされない。
原因
buildspec.ymlの中で別のディレクトリに移動して作業をしてたから。
どうやらデフォルトディレクトリ以外にartifactを置いてもアップロードされないみたい。
例
失敗する例
buildspec.yml
version: 0.2
phases:
test:
- mkdir -p hoge
- cd hoge
- echo "hoge" > test.txt
artifacts:
files:
- test.txt
成功する例
buildspec.yml
version: 0.2
phases:
test:
- DEFAULT=`pwd`
- mkdir -p hoge
- cd hoge
- cd $DEFAULT
- echo "hoge" > test.txt
artifacts:
files:
- test.txt
元のディレクトリに戻ってからファイルを作成したらちゃんと動いた。
デフォルトディレクトリは下記のように固定されてないので、
まず最初に取得しておく必要があり?(環境変数であるかも)
/codebuild/output/src123456789/src/github.com/[user]/[repo]
- 2019/4/9追記
環境変数ありました。
CODEBUILD_SRC_DIR: CodeBuild がビルドに使用するディレクトリパス (例: /tmp/src123456789/src)。
https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/build-env-ref-env-vars.html