Groovy Jenkinsfile方法中无法识别的参数
我正在执行一个方法调用:Groovy Jenkinsfile方法中无法识别的参数,groovy,jenkins-pipeline,jenkins-groovy,Groovy,Jenkins Pipeline,Jenkins Groovy,我正在执行一个方法调用: notifyGerrit('Success') 方法定义是 def notifyGerrit(String msg) { sh ''' ssh -i ${JENKINS_PUB_KEY} -o UserKnownHostsFile=/dev/null \ -p 12345 gerrit.abc.com gerrit review \ ${GERRIT_CHANGE_NUMBER},${GE
notifyGerrit('Success')
方法定义是
def notifyGerrit(String msg) {
sh '''
ssh -i ${JENKINS_PUB_KEY} -o UserKnownHostsFile=/dev/null \
-p 12345 gerrit.abc.com gerrit review \
${GERRIT_CHANGE_NUMBER},${GERRIT_PATCHSET_NUMBER} \
--label ${msg} \ -m "'Successful: ${BUILD_URL}'"
'''
}
执行此操作时,--label
获取空值
+ ssh -i **** -o UserKnownHostsFile=/dev/null -p 12345 gerrit.abc.com gerrit review 4134,1 --label -m ''\'' Successful: https://abc.gerrit.com/'\''' fatal: Label vote missing '=': -m
我试着用
{msg}
msg
$msg
${msg}
但这些都不管用。如何在代码块中获取参数msg的值。请注意,来自环境的其他变量(如
${BUILD_URL}
等)也可以工作。如果要使用字符串插入$msg
变量,则需要使用双引号而不是单引号。大概是这样的:
def notifyGerrit(String msg) {
sh """
ssh -i ${JENKINS_PUB_KEY} -o UserKnownHostsFile=/dev/null \
-p 12345 gerrit.abc.com gerrit review \
${GERRIT_CHANGE_NUMBER},${GERRIT_PATCHSET_NUMBER} \
--label ${msg} \
-m \\"'Successful: ${BUILD_URL}'\\"
"""
}
如果要使用字符串插入
$msg
变量,则需要使用双引号而不是单引号。大概是这样的:
def notifyGerrit(String msg) {
sh """
ssh -i ${JENKINS_PUB_KEY} -o UserKnownHostsFile=/dev/null \
-p 12345 gerrit.abc.com gerrit review \
${GERRIT_CHANGE_NUMBER},${GERRIT_PATCHSET_NUMBER} \
--label ${msg} \
-m \\"'Successful: ${BUILD_URL}'\\"
"""
}