我可以使用 jenkins 共享库中的脚本将选项加载到 Active Choices 参数吗?

问题描述 投票:0回答:1

我可以使用 jenkins 共享库中的脚本从 .json 文件加载选项吗?我在 /vars 目录中有脚本,用于从 json 文件返回条目。 这是我的参数部分:

            parameters([
                    [$class: 'CascadeChoiceParameter',
                     choiceType: 'PT_MULTI_SELECT',
                     description: 'Select machines',
                     filterLength: 1,
                     filterable: true,
                     name: 'machineNames',
                     referencedParameters: '',
                     script: [$class: 'GroovyScript',
                              fallbackScript: [
                                      classpath: [],
                                      sandbox: false,
                                      script: 'return ["Please select a deliverable first"]'
                              ],
                              script: [
                                      classpath: [],
                                      sandbox: false,
                                      script: 'return loadMachineList()'
                              ]
                     ]
                    ],
...

loadMachineList() 函数返回以逗号分隔的机器列表。函数本身正在工作,我在构建中验证了它。

当我尝试运行作业(“使用参数构建”)时,有任何选项可供选择。

我验证了脚本本身 - 它有效。 我尝试将脚本调用为 loadMachineList()、vars/loadMachinesList() 但没有结果。

jenkins groovy jenkins-pipeline jenkins-groovy
1个回答
0
投票

恐怕不行,据我所知,脚本必须是内联的,并且您无法从外部源加载脚本。一种解决方法是将脚本添加到自定义 Jar 中,并指向

classpath[]
部分中的自定义 Jar。除此之外,您在属性块内的脚本部分中放置的任何内容都必须是独立的。

© www.soinside.com 2019 - 2024. All rights reserved.