如何在 Jenkins 的活动选择参数中将简单的 shell 命令作为 groovy 脚本执行?
How do I execute a simple shell-command as a groovy script in the active choice parameter in Jenkins?
我正在尝试获取给定目录中的目录名称。为了尝试一下,我使用了常规管道,这是工作代码:
foundDirectories = sh(script: "ls -1 'X:\example\directory'", returnStdout: true).split()
foundDirectories.each { key ->
println(key)
}
我稍微修改了代码以使其用作参数脚本:
foundDirectories = sh(script: "ls -1 'X:\example\directory'", returnStdout: true).split()
return foundDirectories
我尝试在 Active Choice Parameter
中使用此代码,以便在使用参数构建时能够在找到的目录之间进行选择。当我单击“使用参数构建”按钮并显示菜单时,脚本显然不起作用,因为该框保持为空。如果我添加后备脚本,它就会被执行。
我是否必须围绕它添加一些代码,或者 sh-commands 本身就不能工作?
您可以尝试以下命令,它将列出给定目录中的所有文件。我试过了linux系统
甚至您可以使用 eachFileMatch(regex)
.
基于正则表达式过滤文件
import static groovy.io.FileType.FILES
def list=[]
new File("X:\example\directory").eachFile() {
file -> list.add(file.getName())
}
return list
我正在尝试获取给定目录中的目录名称。为了尝试一下,我使用了常规管道,这是工作代码:
foundDirectories = sh(script: "ls -1 'X:\example\directory'", returnStdout: true).split()
foundDirectories.each { key ->
println(key)
}
我稍微修改了代码以使其用作参数脚本:
foundDirectories = sh(script: "ls -1 'X:\example\directory'", returnStdout: true).split()
return foundDirectories
我尝试在 Active Choice Parameter
中使用此代码,以便在使用参数构建时能够在找到的目录之间进行选择。当我单击“使用参数构建”按钮并显示菜单时,脚本显然不起作用,因为该框保持为空。如果我添加后备脚本,它就会被执行。
我是否必须围绕它添加一些代码,或者 sh-commands 本身就不能工作?
您可以尝试以下命令,它将列出给定目录中的所有文件。我试过了linux系统
甚至您可以使用 eachFileMatch(regex)
.
import static groovy.io.FileType.FILES
def list=[]
new File("X:\example\directory").eachFile() {
file -> list.add(file.getName())
}
return list