具有动态参数的Jenkins管道
我有一个Jenkins在windows上运行多个代理。我想要一个带有动态参数的管道,该管道应该由windows代理上的文件夹列表填充。我得到了以下代码:具有动态参数的Jenkins管道,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我有一个Jenkins在windows上运行多个代理。我想要一个带有动态参数的管道,该管道应该由windows代理上的文件夹列表填充。我得到了以下代码: def listSDKVersions() { return{ agent { label 'windows' } stage { bat "dir Z:\\ /b" } } } def SDKVersions = listSDKVersions() p
def listSDKVersions() {
return{
agent { label 'windows' }
stage {
bat "dir Z:\\ /b"
}
}
}
def SDKVersions = listSDKVersions()
pipeline {
agent { label 'windows && docker' }
parameters {
choice(name: 'SDK', choices: SDKVersions , description: 'SDK Version')
}
}
但是当我执行它时,我得到以下错误:
java.lang.IllegalArgumentException: expected String or List, but got org.jenkinsci.plugins.workflow.cps.CpsClosure2
at hudson.model.ChoiceParameterDefinition.setChoices(ChoiceParameterDefinition.java:105)
是否有人知道如何正确地执行此操作,或者是否有可能执行此操作?让它像这样运行:
def listSDKVersions() {
return{
node('windows'){
def folders = bat(script:"@dir Z:\\ /b", returnStdout:true)
return folders
}
}
}
def SDKVersions = listSDKVersions().call()
pipeline {
agent { label 'windows && docker' }
parameters {
choice(name: 'SDK', choices: SDKVersions , description: 'SDK Version')
}
}