我有一个非常简单的管道,可以在主机上运行。我正在读取可在詹金斯(大师)上使用的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)
…
}
}
我找到了一条信息,
“文件始终表示当前计算机上的文件路径”。
是什么意思?必须可以从节点读取文件。
有人可以帮忙吗?
答案 0 :(得分:1)
请勿使用本机Groovy / Java IO功能,而应使用pipeline steps。原因是流水线代码本身总是在主服务器上执行!
使用readFile
步骤的正确(伪)代码如下:
stage ('Stage 1'){
node('Agent_1') {
def String my_line = readFile("tmp.txt")
…
}
}