在詹金斯管道中传递的字符串参数

时间:2018-11-15 13:38:02

标签: jenkins jenkins-plugins jenkins-pipeline

我正在开发一个管道,该管道在触发时应显示参数,下面是代码

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)

有人可以让我知道如何进行吗?

1 个答案:

答案 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