Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有动态参数的Jenkins管道_Jenkins_Jenkins Pipeline - Fatal编程技术网

具有动态参数的Jenkins管道

具有动态参数的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

我有一个Jenkins在windows上运行多个代理。我想要一个带有动态参数的管道,该管道应该由windows代理上的文件夹列表填充。我得到了以下代码:

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')
    }
}