如何在Groovy中访问参数的值?这似乎是一个微不足道的问题,但却给我带来了许多小时的痛苦。
dslFactory.job(name) {
parameters {
activeChoiceParam('ENTERPRISESERVER') {
description('')
choiceType('SINGLE_SELECT')
groovyScript {
script("""[
"vws-10-persmft",
"vws-10-persmft2",
"vws-10-persmft3",
// "vws-10-persmfe",
// "vws-10-persmfe2",
"vts-10-perse9",
//"vts-10-perse8",
//"vts-10-perse7",
"vws-10-perskmt5"
]""")
}
}
}
steps {
def targetServer = '${ENTERPRISESERVER}'
powerShell """
Write-Output 'Target Server: $targetServer'
Invoke-Command -ComputerName '$targetServer' -ScriptBlock {
Restart-Service -Name 'SEEShutdown';
Restart-Service -Name 'SEEMonitor';
};
"""
}
}
当我运行该代码时,我得到以下错误:
+ ... Invoke-Command -ComputerName '${ENTERPRISESERVER}' -Scrip ...
因此,出于某种原因,Groovy不解析${ENTERPRISESERVER}
。我尝试过使用$ENTERPRISESERVER
,但它无法编译:
de.akdb.pers.ci.JobScriptsSpec > test script bootstrap.groovy FAILED
org.spockframework.runtime.UnallowedExceptionThrownError at JobScriptsSpec.groovy:24
Caused by: javaposse.jobdsl.dsl.DslScriptException at JobScriptsSpec.groovy:21
Caused by: groovy.lang.MissingPropertyException at JobScriptsSpec.groovy:21
我做错了什么?
我还尝试了以下问题的解决方案:
Jenkins Job DSL: Using parameters in groovyScript in job step
How to access a specific Jenkins job parameter from within a JobDSL?
How to retrieve Jenkins build parameters using the Groovy API?
1条答案
按热度按时间zi8p0yeb1#
请尝试以下操作之一。