Jenkins pipeline 访问管道scrpit中的Jenkins工作区文件

Jenkins pipeline 访问管道scrpit中的Jenkins工作区文件,jenkins-pipeline,Jenkins Pipeline,我是詹金斯的新手,所以如果问题不够详细,我很抱歉,但我发誓我已经先做了我自己的搜索 我有一个管道脚本,需要处理上一步从SCM(git)中提取的文件。 传递到管道的参数之一是所有这些文件所在的文件夹。此文件夹中可能包含子文件夹,我也需要处理这些子文件夹 因此,例如,我可以将参数/my folder传递到管道,并且my folder可能包含以下内容: ./my folder/file1.json ./my folder/file2.json ./my folder/subfolder/file3.j

我是詹金斯的新手,所以如果问题不够详细,我很抱歉,但我发誓我已经先做了我自己的搜索

我有一个管道脚本,需要处理上一步从SCM(git)中提取的文件。 传递到管道的参数之一是所有这些文件所在的文件夹。此文件夹中可能包含子文件夹,我也需要处理这些子文件夹

因此,例如,我可以将参数/my folder传递到管道,并且my folder可能包含以下内容:

./my folder/file1.json

./my folder/file2.json

./my folder/subfolder/file3.json

my folder
目录将是在构建阶段克隆的存储库的一部分

当我在本地开发Groovy脚本时,我正在做类似的事情:

def f = new File(folder)
但这在Jenkins中不起作用,因为代码在主节点上运行,而文件夹在另一个节点上。 经过广泛的研究,我现在知道有两种方法可以读取詹金斯的文件

  • 使用
    readFile
    。这将是确定的,但我还没有找到一个简单的方法来扫描整个文件夹和子文件夹加载所有文件
  • 使用
    文件路径
    。这是我的首选方法,因为它更像是面向对象的,但我还没有找到创建此类实例的方法。我在互联网上搜索时看到的所有方法都涉及
    build
    变量,我不完全确定为什么脚本中没有定义该变量。事实上,我得到了
    groovy.lang.MissingPropertyException:没有这样的属性:buildforclass:WorkflowScript
  • 我希望这个问题有意义,否则我很乐意补充更多细节

    谢谢


    Nico

    我已使用以下方法扫描了文件夹的内容:

    sh "find ${base-folder} -name *.* > files.txt"
    def files = readFile "files.txt"
    
    然后遍历files.txt中的行以打开每个文件


    问题是这只适用于txt文件。我仍然无法使用
    readFile

    打开二进制文件(例如:zip文件),我已使用以下方法扫描文件夹的内容:

    sh "find ${base-folder} -name *.* > files.txt"
    def files = readFile "files.txt"
    
    然后遍历files.txt中的行以打开每个文件

    问题是这只适用于txt文件。我仍然无法使用
    readFile