2016-11-29 19 views
1

YAMLの構文に慣れていないので、bitbucket-pipelines.yamlファイルの検証に問題があります。YAMLファイルが無効です

私はオンラインYAMLパーサから次を得る:

ERROR: 

while scanning for the next token 
found character '%' that cannot start any token 
    in "<unicode string>", line 18, column 234: 
    ... CKET_BRANCH, \"Date\": $(date +"%m-%d-%y"), \ 

構文が間違っていますか?このエラーを修正するにはどうすればよいですか?

pipelines: 
    branches: 
    master: 
     - step: 
      script: 
      - echo "Runing pip-lee-nes for ARGUS" 
      - echo "Deploy to live" 
      - export AWS_ACCESS_KEY_ID=$LIVE_AWS_ACCESS_KEY_ID 
      - export AWS_SECRET_ACCESS_KEY=$LIVE_AWS_SECRET_ACCESS_KEY 
      - export AWS_DEFAULT_REGION=$LIVE_AWS_REGION 
      - node -v 
      - npm --version 
      - npm run config $LIVE_BUCKET_NAME $LIVE_AWS_REGION 
      - npm run setup 
      - "aws sns publish --topic-arn arn:aws:sns:$LIVe_REGION:$LIVE_AWS_ACCOUNT_ID:new_release --subject \"$BITBUCKET_REPO_SLUG\" --message \"{\"Commit\": $BITBUCKET_COMMIT, \"Branch\": $BITBUCKET_BRANCH, \"Date\": $(date +"%m-%d-%y"), \"Time\": $(date +"%T")}\" 

    develop: 
     - step: 
      script: 
      - echo "Runing pip-lee-nes for ARGUS" 
      - echo "Deploy to staging" 
      - export AWS_ACCESS_KEY_ID=$STAGING_AWS_ACCESS_KEY_ID 
      - export AWS_SECRET_ACCESS_KEY=$STAGING_AWS_SECRET_ACCESS_KEY 
      - export AWS_DEFAULT_REGION=$DEFAULT_REGION 
      - node -v 
      - npm --version 
      - npm run config $STAGING_BUCKET_NAME $DEFAULT_REGION 
      - npm run setup 
      - "aws sns publish --topic-arn arn:aws:sns:$DEFAULT_REGION:$STAGING_AWS_ACCOUNT_ID:new_release --subject \"$BITBUCKET_REPO_SLUG\" --message \"{\"Commit\": $BITBUCKET_COMMIT, \"Branch\": $BITBUCKET_BRANCH, \"Date\": $(date +"%m-%d-%y"), \"Time\": "$(date +"%T")}\" 

答えて

2

問題のあるスカラを少し短くした場合:

"aws ... \"Branch\": $BITBUCKET_BRANCH, \"Date\": $(date +"%m-%d-%y"), \"Time\": $(date +"%T")}\" 

あなたはそれが次の二重引用符で始まり、: $(date +後の最初のエスケープされていない(つまり無\)二重引用符で終わることがわかりますパーサーが読み取るトークンは、%から始まり、%m-%d-%yから始まります。これは許可されません。おそらくやってみたかった:

"aws ... \"Branch\": $BITBUCKET_BRANCH, \"Date\": $(date +\"%m-%d-%y\"), \"Time\": $(date +\"%T\")}" 

(私は末尾の二重引用符のためにバックスラッシュを削除4つのバックラッシュを挿入していることに注意してください)。そうすることで、二重引用符で囲まれたYAMLスカラーが有効になります。

あなただけの二重引用符をエスケープして、文字列には単一引用符を持っていないので、あなたはおそらく全体の周りの単一引用符を使用し、バックスラッシュをドロップして方がいいでしょう:

- 'aws sns publish --topic-arn arn:aws:sns:$LIVe_REGION:$LIVE_AWS_ACCOUNT_ID:new_release --subject "$BITBUCKET_REPO_SLUG" --message "{"Commit": $BITBUCKET_COMMIT, "Branch": $BITBUCKET_BRANCH, "Date": $(date +"%m-%d-%y"), "Time": $(date +"%T")}' 
+0

あなたの最後の行入力は同じ問題を抱えていますが、私はあなたがあなた自身でそれを修正できるように、上記が十分明確であることを願っています。 – Anthon

+1

素晴らしい作品です! – hyprstack

関連する問題