Mar*_*and 8 groovy jenkins newrelic
我正在尝试使用Groovy管道作为Jenkins构建步骤进行New Relic部署API调用。我很麻烦,因为在groovy脚本的shell('sh')命令中同时使用了单引号和双引号。每当执行以下命令时:
node {
//...
def json = '''\
{"deployment": {"revision": "v1","user": "me"}}'
'''
sh "curl -o /dev/null -s -X POST 'https://api.newrelic.com/v2/applications/[redacted]/deployments.json' \
-H 'X-Api-Key:[redacted]' \
-H 'Content-Type: application/json' \
-d '${json}'"
// ...
}
Run Code Online (Sandbox Code Playgroud)
我在詹金斯遇到一个错误,说:
/var/lib/jenkins/jobs/[redacted]/workspace@tmp/durable-0f6c52ef/script.sh:第2行:在寻找匹配的`''时出现意外的EOF
小智 6
'json'变量包含一个字符串,该字符串带有一个额外的尾随单引号(')。
当在-d'$ {json}'“中使用它时,我怀疑它将在数据块中导致一个额外的(')。该数据块将要求JSON用单引号引起来,因此请确保其中包括了这些引号。
由于不是Groovy的人(双关语意味十足的人),您可能必须使用转义字符来进行游戏,以确保将正确的字符串传递给cURL命令。
| 归档时间: |
|
| 查看次数: |
14598 次 |
| 最近记录: |