在詹金斯管道中转义双引号

时间:2019-06-20 13:22:18

标签: git jenkins escaping string-interpolation git-tag

我正在尝试在Jenkinsfile中创建标签。

我尝试了以下组合:

尝试一个

sh "git tag -a ${params.Version} -m \"${params.Message}\" ${hash} -f"

结果:

tag tag -a 1.0.1 -m Unquoted commit message 123456 -f

显然不起作用

尝试两个

sh "git tag -a ${params.Version} -m \\"${params.Message}\\" ${hash} -f"

结果:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 84: unexpected char: '\' @ line 84, column 81.
   rsion} -m \\"${params.Message}\\" ${hash

尝试三个

sh "git tag -a ${params.Version} -m \\\"${params.Message}\\\" ${hash} -f"

结果:

git tag -a 1.0.1 -m "Full release pipeline" 4618df91ff80e99cdd16f3849da06234e2385066 -f
fatal: too many params

看起来不错,但显然出了点问题。

您如何做到的?

修改

这是我唯一要做的事情,但是阅读和维护它很痛苦。

sh 'git tag -af ' + params.Version + ' -m "' + params.Message + '" ' + hash

1 个答案:

答案 0 :(得分:0)

sh -c "git tag -a ${params.Version} -m \\\\"${params.Message}\\\\" ${hash} -f"

似乎可以正常工作。