导致bitbucket CI/CD管道YAML中缩进错误的curl命令
当我部署到生产环境时,我正在尝试向bitbucket上的CI/CD YAML添加一个导致bitbucket CI/CD管道YAML中缩进错误的curl命令,yaml,syntax-error,bitbucket,cloudflare,Yaml,Syntax Error,Bitbucket,Cloudflare,当我部署到生产环境时,我正在尝试向bitbucket上的CI/CD YAML添加一个curl命令。curl命令向CloudFlare API发送POST请求以清除缓存。该命令包括-H变量作为必要的HTTP头。这导致bitbucket上出现缩进错误,因此我无法提交更改,我不确定原因。我不熟悉YAML语法以及如何解决这个问题 bitback-pipelines.YAML image: python:3.7.4 clone: depth: full pipelines: default:
curl
命令。curl
命令向CloudFlare API发送POST请求以清除缓存。该命令包括-H
变量作为必要的HTTP头。这导致bitbucket上出现缩进错误,因此我无法提交更改,我不确定原因。我不熟悉YAML语法以及如何解决这个问题
bitback-pipelines.YAML
image: python:3.7.4
clone:
depth: full
pipelines:
default:
- step:
caches:
- pip
script:
- echo "nothing"
branches:
prod:
- step:
name: Deploy to Staging
deployment: staging
script: #staging script
- git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_STAGING_APP_NAME.git HEAD:master --force
- step:
name: Deploy to Production
deployment: production
trigger: manual
script: #production script
- git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git HEAD:master --force
- "curl -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE\purge_cache" -H "X-Auth-Email: $CLOUDFLARE_AUTH_EMAIL" \
-H "X-Auth-Key: $CLOUDFLARE_AUTH_KEY" \
-H "Content-Type: application/json" --data '{"purge_everything":true}'"
您需要在命令中转义双引号。此外,
-H
续行的缩进程度不够–它们的缩进程度必须大于标量开始行上的列表项指示符
更好的方法是使用折叠块标量:
- >-
curl -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE\purge_cache"
-H "X-Auth-Email: $CLOUDFLARE_AUTH_EMAIL"
-H "X-Auth-Key: $CLOUDFLARE_AUTH_KEY"
-H "Content-Type: application/json" --data '{"purge_everything":true}'
折叠块标量将换行符折叠到空格中,并且不处理任何特殊字符,因此您不需要转义任何内容(事实上,块标量中没有转义序列)。您需要转义命令中的双引号。此外,
-H
续行的缩进程度不够–它们的缩进程度必须大于标量开始行上的列表项指示符
更好的方法是使用折叠块标量:
- >-
curl -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE\purge_cache"
-H "X-Auth-Email: $CLOUDFLARE_AUTH_EMAIL"
-H "X-Auth-Key: $CLOUDFLARE_AUTH_KEY"
-H "Content-Type: application/json" --data '{"purge_everything":true}'
折叠块标量将换行符折叠到空格中,并且不处理任何特殊字符,因此不需要转义任何内容(事实上,块标量中没有转义序列)