我正在开发一个管道,该管道在触发时应显示参数,下面是代码
node {
stage('preparation') {
timeout(time:15, unit:'MINUTES') {
id: 'userInput', message: 'preparation',
parameters: [
[$class: 'TextParameterDefinition', defaultValue: 'cicd', description: 'dev env', name: 'DEV_PROJECT'],
[$class: 'TextParameterDefinition', defaultValue: 'test', description: 'stage env', name: 'STAGE_PROJECT'],
[$class: 'TextParameterDefinition', defaultValue: 'jboss', description: 'Image Name', name: 'IMAGE_NAME'],
] )
input message: "Is the PARAMETERS(can be visible on leftside) are correctly set for deployment?", ok: "Promote" }
echo "${DEV_PROJECT}"
echo "${STAGE_PROJECT}"
echo "${IMAGE_NAME}"
}
当我回显它时,它不会填充用户输入的值。
我越来越低于错误。我的要求是用户可以输入DEV_PROJECT,STAGE_PROJECT和IMAGE_NAME,并且他输入的值应该在构建和部署阶段的流水线脚本中使用。
groovy.lang.MissingPropertyException: No such property: DEV_PROJECT for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:242)
at org.kohsuke.groovy.sandbox.impl.Checker$6.call(Checker.java:284)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:288)
有人可以让我知道如何进行吗?
答案 0 :(得分:0)
如果已将管道配置为在构建时接受参数-使用参数构建-它们可以作为isFoo
中的Groovy变量进行访问。
示例:使用定义为布尔参数的node {
sh "isFoo is ${params.isFoo}"
sh 'isFoo is ' + params.isFoo
if (params.isFoo) {
// do something
}
参数(GUI中的复选框):
true
参考:https://jenkins.io/doc/book/pipeline/getting-started/#global-variable-reference