如何使用 jenkins active choices 参数读取目录中的所有文件名?
How to read all file names in a directory with jenkins active choices parameter?
如何读取目录中的所有文件名并将它们显示为 Jenkins GUI 中的下拉列表?
我的目标实际上是创建两个依赖的下拉菜单,用户在第一个下拉菜单中选择一个文件,关于选择,在第二个下拉菜单中,第一个选择的文件内容将作为参数显示给用户。
我尝试了以下但没有成功。
在活动选择参数中 - Groovy 脚本:
import groovy.io.FileType
def list = []
def dir = new File("/some/path/to/variable/TEST/*")
dir.eachFileRecurse (FileType.FILES) { file ->
list << file
}
return list
这里的 Active Choice Parameter Name 是 SWITCH
和
在 Active Choices 反应参数中
import groovy.json.JsonSlurper
def list = []
File textfile= new File("/some/path/to/variable/${SWITCH}")
JsonSlurper slurper = new JsonSlurper()
def parsedJson = slurper.parse(textfile)
parsedJson.each{ list.add(it.port_name + " " + it.description)}
return list
PS:文件为 JSON 格式。
我认为您错过了屏幕截图中的选项 Referenced parameters
:
这个字段的描述是here:
This option, takes a list of job parameters that trigger an
auto-refresh of the Reactive Parameter when any of the 'Referenced
parameters' change
更新:
对我来说,你的代码可以工作,除了一个小的变化:
import groovy.json.JsonSlurper
def list = []
File textfile= new File("${SWITCH}")
JsonSlurper slurper = new JsonSlurper()
def parsedJson = slurper.parse(textfile)
parsedJson.each {
list.add "$it.port_name $it.description".toString()
}
return list
我为每个列表元素添加了 toString()
以将 GString 类型的项目转换为 String。我想这是你的问题。如果没有 toString()
,Jenkins 会显示 [Object object],因为它不知道如何转换它。
我已经解决了这个问题,所以如果有人需要:
import groovy.io.FileType
def list = []
def dir = new File("/some/path/to/variable/TEST/")
dir.eachFileRecurse (FileType.FILES) { file ->
list.add(file.getName())
}
return list
如何读取目录中的所有文件名并将它们显示为 Jenkins GUI 中的下拉列表?
我的目标实际上是创建两个依赖的下拉菜单,用户在第一个下拉菜单中选择一个文件,关于选择,在第二个下拉菜单中,第一个选择的文件内容将作为参数显示给用户。
我尝试了以下但没有成功。
在活动选择参数中 - Groovy 脚本:
import groovy.io.FileType
def list = []
def dir = new File("/some/path/to/variable/TEST/*")
dir.eachFileRecurse (FileType.FILES) { file ->
list << file
}
return list
这里的 Active Choice Parameter Name 是 SWITCH
和
在 Active Choices 反应参数中
import groovy.json.JsonSlurper
def list = []
File textfile= new File("/some/path/to/variable/${SWITCH}")
JsonSlurper slurper = new JsonSlurper()
def parsedJson = slurper.parse(textfile)
parsedJson.each{ list.add(it.port_name + " " + it.description)}
return list
PS:文件为 JSON 格式。
我认为您错过了屏幕截图中的选项 Referenced parameters
:
这个字段的描述是here:
This option, takes a list of job parameters that trigger an auto-refresh of the Reactive Parameter when any of the 'Referenced parameters' change
更新:
对我来说,你的代码可以工作,除了一个小的变化:
import groovy.json.JsonSlurper
def list = []
File textfile= new File("${SWITCH}")
JsonSlurper slurper = new JsonSlurper()
def parsedJson = slurper.parse(textfile)
parsedJson.each {
list.add "$it.port_name $it.description".toString()
}
return list
我为每个列表元素添加了 toString()
以将 GString 类型的项目转换为 String。我想这是你的问题。如果没有 toString()
,Jenkins 会显示 [Object object],因为它不知道如何转换它。
我已经解决了这个问题,所以如果有人需要:
import groovy.io.FileType
def list = []
def dir = new File("/some/path/to/variable/TEST/")
dir.eachFileRecurse (FileType.FILES) { file ->
list.add(file.getName())
}
return list