CodeBuild の buildspec.yml で `YAML_FILE_ERROR Message: did not find expected comment or line break` が発生
現象
buildspec.yml で CodeBuild を動かすと、以下エラーが発生してビルドがストップする。
[Container] 2019/10/16 11:28:42 Phase complete: DOWNLOAD_SOURCE State: FAILED
[Container] 2019/10/16 11:28:42 Phase context status code: YAML_FILE_ERROR Message: did not find expected comment or line break at line 20
環境
- buildspec.yml の version: 0.2
原因
エラーが示した line 20 は以下の $DRYRUN
... の行。
build:
commands:
- [[ $DRYRUN != 1 ]] || bash -c "./deploy.sh -e ${BUILD_STAGE} ${MODE}"
当該行は、そもそも YAML の構文に従っていなかった。具体的には論理和 ||
の部分。
|
が複数行を記述するための予約文字になっているため、文字列として認識されない。
同様に &&
も &
がアンカーの予約文字になっている。
対応
ダブルクオートでくくることで構文エラーを回避できる。
- "[[ $DRYRUN != 1 ]] || bash -c \"./deploy.sh -e ${BUILD_STAGE} ${MODE}\""
参考
Author And Source
この問題について(CodeBuild の buildspec.yml で `YAML_FILE_ERROR Message: did not find expected comment or line break` が発生), 我々は、より多くの情報をここで見つけました https://qiita.com/tsubasaogawa/items/ae620f6f3fcf1373a20e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .