在我的.gitlab-ci.yml文件下面:
image: docker:latest
services:
- docker:dind
stages:
- deploy_dev_env
Deploy DEV Environment:
stage: deploy_dev_env
script:
- curl -v -H "Content-Type: multipart/form-data" -X PUT -F uploadInput=@schema/schema.xml -F overwrite=true -F xmlaEnabledFlag=true -F parameters="DataSource=outputDS" -F parameters="EnableXmla=true" -u $PENTAHO_DEPLOY_USER:$PENTAHO_DEPLOY_PASSWORD http://$PENTAHO_HOST/pentaho/plugin/data-access/api/datasource/analysis/catalog/sca
Run Code Online (Sandbox Code Playgroud)
这个非常简单的脚本会导致错误,因为这部分中的冒号(:) "Content-Type: multipart/form-data"。
在脚本中运行 CI Lint 我得到以下信息:
Status: syntax is incorrect
jobs:deploy dev environment:script config should be a string or an array containing strings and arrays of strings
Run Code Online (Sandbox Code Playgroud)
如果我替换"Content-Type: multipart/form-data"为"Content-Type multipart/form-data"(删除了“:”),我会得到我的 .gitlab-ci.yml 文件的正确语法。
这是一个错误还是我应该以不同的方式重写我的 curl 命令?
文档警告 yaml 脚本中的特殊字符:
\n\n\n\n\n注意:有时,脚本命令需要用单引号或双引号引起来。例如,包含冒号 (:) 的命令需要用引号引起来,以便 YAML 解析器知道将整个内容解释为字符串而不是 \xe2\x80\x9ckey: value\xe2\x80\x9d 对。使用特殊字符时请小心::、{、}、[、]、、、&、*、#、?、|、-、<、>、=、!、%、@、`。
\n
其中一种选择是使用yaml 块标量
\n\nDeploy DEV Environment:\n stage: deploy_dev_env\n script: >\n curl -v -H "Content-Type: multipart/form-data" -X PUT -F uploadInput=@schema/schema.xml -F overwrite=true -F xmlaEnabledFlag=true -F parameters="DataSource=outputDS" -F parameters="EnableXmla=true" -u $PENTAHO_DEPLOY_USER:$PENTAHO_DEPLOY_PASSWORD http://$PENTAHO_HOST/pentaho/plugin/data-access/api/datasource/analysis/catalog/sca\nRun Code Online (Sandbox Code Playgroud)\n\n或使用其他方式在 yaml 中转义冒号。
\n| 归档时间: |
|
| 查看次数: |
1518 次 |
| 最近记录: |