Jenkins节点上的新File(“ path / tmp.txt”)

时间:2018-11-22 07:36:16

标签: jenkins jenkins-groovy

我有一个非常简单的管道,可以在主机上运行。我正在读取可在詹金斯(大师)上使用的tmp.txt文件中的一行。

stage ('Stage 1'){
    node('master') {
        File file1 = new File("env.Workspace/tmp.txt")
        def String my_line = file1.readLines().get(0)
        …
    }
}

我必须将舞台移动到另一个节点(从节点),并且它不再起作用。如果master工作空间中存在tmp.txt,则管道会读取它。但是我想在节点的工作空间中而不是从主服务器读取tmp.txt!

stage ('Stage 1'){
    node('Agent_1') {
        File file1 = new File("env.Workspace/tmp.txt")
        def String my_line = file1.readLines().get(0)
        …
    }
}

我找到了一条信息,

  

“文件始终表示当前计算机上的文件路径”。

是什么意思?必须可以从节点读取文件。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

请勿使用本机Groovy / Java IO功能,而应使用pipeline steps。原因是流水线代码本身总是在主服务器上执行!

使用readFile步骤的正确(伪)代码如下:

stage ('Stage 1'){
    node('Agent_1') {
        def String my_line = readFile("tmp.txt")
        …
    }
}