GitLab CI如何使用here文档将JSON数据发布到CI作业内的url?

GitLab CI如何使用here文档将JSON数据发布到CI作业内的url?,gitlab,gitlab-ci,Gitlab,Gitlab Ci,希望有人能帮忙。我在使用gitlab CI作业中的JSON数据进行curl POST请求时遇到困难 curl请求在本地终端会话中工作良好(注意,我在终端会话中没有使用双引号)。如果我没有在gitlab CI yaml中转义双引号,我将得到错误curl:(3)[globbing]列112中嵌套的大括号 如果我在GitLab CI作业中转义双引号,如下所示,我会得到错误: curl:(3)[globbing]第1列中的大括号不匹配 在所有情况下,我都会收到错误/bin/bash:line 134:w

希望有人能帮忙。我在使用gitlab CI作业中的JSON数据进行curl POST请求时遇到困难

curl请求在本地终端会话中工作良好(注意,我在终端会话中没有使用双引号)。如果我没有在gitlab CI yaml中转义双引号,我将得到错误
curl:(3)[globbing]列112中嵌套的大括号

如果我在GitLab CI作业中转义双引号,如下所示,我会得到错误:
curl:(3)[globbing]第1列中的大括号不匹配

在所有情况下,我都会收到错误
/bin/bash:line 134:warning:here文档第134行由文件结尾分隔(通缉'EOF')

是否可以使用GitLab CI作业中的here文档发布JSON数据

.gitlab-ci.yml作业摘录

发布:
图:节点:12弹力修身
阶段:发布
在脚本之前:
-apt-get-update&&apt-get-install-y curl-git-jq
脚本:
-version=$(git description--tags | cut-d'-'-f1 | sed's/^v*/'))
-echo“为版本${version}生成发布”
-npm包
# - >
#url=$(卷曲)
#--标题“专用令牌:$API_令牌”
#-F“file=@${CI_PROJECT_DIR}/objectdetection plugin-${version}.tgz”https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/上传”
#   |
#jq'.url')
-url=”http://www.example.com"
-echo“从文件上载中检索的url为${url}”
-echo“完整url将是${CI_PROJECT_url}/${url}”
- >
curl-X柱https://requestbin.io/1f84by61
--标题的内容类型:application/json;字符集=utf-8'
--数据二进制@-读取后解决它

使用
|-
会在命令中保留换行符,而不会在命令字符串的末尾追加换行符。使用此原则将JSON数据保存到一个变量,然后在随后的curl命令中引用该变量

下面是我的脚本:

发布:
图:节点:12弹力修身
阶段:发布
在脚本之前:
-apt-get-update&&apt-get-install-y curl-git-jq
脚本:
-git fetch--prune--unshall
-version=$(git description--tags | cut-d'-'-f1 | sed's/^v*/'))
-npm包
- >
url=$(curl--silent--show error
--请帖
--标题“专用令牌:$API_令牌”
-F“file=@${CI_PROJECT_DIR}/objectdetection plugin-${version}.tgz”https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/上传”
|
jq--原始输出--单色输出'.url')
- |-
有效载荷=$(cat)
http_response=$(curl--silent--show error--write out“{http_code}”-o response.txt
--请求职位“https://gitlab.com/api/v4/projects/$CI_项目_ID/发布”
--标题“内容类型:应用程序/json”
--标题“接受:应用程序/json”
--标题“专用令牌:${API_令牌}”
--数据二进制“${PAYLOAD}”)
- |-
如果[$http_response!=“201”];则
出口1
其他的
echo“返回的服务器:”
cat response.txt
fi
时间:手动
允许失败:false
仅:
-/^发布-*$/