如何在jenkins管道上列出包含文件的文件夹?

时间:2018-03-14 11:18:27

标签: jenkins jenkins-pipeline

我正在尝试在jenkins上列出包含某个文件的文件夹,然后使用此数组。

我读到了findFiles,但在这种情况下我无法找到使用它的方法。

最终结果是我需要在循环中cd到那些文件夹并执行一些操作。

我只有一个jenkins,一切都在运行

用例:

我有一个工作区,我有包。我需要在某些文件夹中运行一些命令,我​​无法从y工作区的根目录执行此操作。它们可能位于子文件夹或子文件夹中。我可以识别包的方式是它包含package.xml(在ROS上)。此外,我没有任何命令列出他们的路径

2 个答案:

答案 0 :(得分:1)

如果没有其他工作,那么您可以尝试运行正常的linux命令,如:

folders = sh(
             script: "locate myfile",
             returnStdout: true
                                )

然后拆分它以形成一个数组并使用如下的值:

folders.split("\n")[1]

答案 1 :(得分:0)

您可以使用一些groovy来找到正确的文件夹:

import java.io.File

def yourStartingDirectory = '.' // doesn't have to be the current directory
def matchingDirectories = []
new File(yourStartingDirectory).traverse(
    type:         groovy.io.FileType.FILES,
    nameFilter:   ~/yourCertainFileName/
) { file ->
    matchingDirectories << file.parent
}