Issue
i want to create dynamic booleanParameters:
pipeline {
agent { label 'master' }
stages {
stage('load stage'){
steps{
script{
def listParam =[]
listParam.add(booleanParam(name: 'a', defaultValue:false ))
listParam.add(booleanParam(name: 'b', defaultValue:false ))
listParam.add(booleanParam(name: 'c', defaultValue:false ))
def userId = input message: 'Please select a or b or c ',
ok : 'RUN',id :'userId',
parameters(listParam)
echo "userId ${userId}"
}
}
}
}
}
and console log return this :
java.lang.IllegalArgumentException: Expected named arguments but got [{message=Please select a or b or c, ok=RUN, id=userId}, @parameters(=[@booleanParam(name=a,defaultValue=false), @booleanParam(name=b,defaultValue=false), @booleanParam(name=c,defaultValue=false)])] at org.jenkinsci.plugins.workflow.cps.DSL.parseArgs(DSL.java:588) at org.jenkinsci.plugins.workflow.cps.DSL.parseArgs(DSL.java:526)
Solution
According to ref-doc you want to pass your listParam
as a part of map with key parameters
:
def listParam = [ booleanParam(name: 'a', defaultValue:false ),
booleanParam(name: 'b', defaultValue:false ),
booleanParam(name: 'c', defaultValue:false ), ]
def userId = input message: 'Please select a or b or c ',
ok : 'RUN',id :'userId',
parameters:listParam
Answered By - injecteer
Answer Checked By - Timothy Miller (JavaFixing Admin)