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

qyyhg6bp  于 2023-10-15  发布在  Jenkins
关注(0)|答案(1)|浏览(150)

我可以使用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(),但没有结果。

3pmvbmvn

3pmvbmvn1#

恐怕不行,AFAIK脚本必须是内联的,你不能从外部源加载脚本。一种解决方法是将脚本添加到自定义Jar中,并指向classpath[]部分中的自定义Jar。除此之外,您在Properties块中的Script部分中放置的任何内容都必须是自包含的。

相关问题