jenkins管道无法读取文件
我有一个简单的Jenkins文件,我想从工作区加载一些数据。我正在使用管道插件来利用存储库中的Jenkins文件。该构建被分包给一个匹配的Jenkins代理。当我尝试使用“readFile”时,会收到以下消息: java.io.FileNotFoundException:/path/to/jenkins/workspace/XXXXX/project/data.json(没有这样的文件或目录) 在尝试从工作区加载Groovy文件时,我也会收到同样的消息 我的jenkins管道无法读取文件,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我有一个简单的Jenkins文件,我想从工作区加载一些数据。我正在使用管道插件来利用存储库中的Jenkins文件。该构建被分包给一个匹配的Jenkins代理。当我尝试使用“readFile”时,会收到以下消息: java.io.FileNotFoundException:/path/to/jenkins/workspace/XXXXX/project/data.json(没有这样的文件或目录) 在尝试从工作区加载Groovy文件时,我也会收到同样的消息 我的Jenkinsfile看起来像: 节点
Jenkinsfile
看起来像:
节点(“主节点”){
阶段“开始”
回音“开始”
阶段“加载文件”
def myJson=readFile“data.json”
}
知道我为什么不能读这些文件吗
谢谢,
Tim当Jenkins处理Jenkins文件时,它不会自动拉取整个源存储库。您需要执行“checkout scm”来下拉存储库的内容。如果无法执行此操作,则管道脚本将无法使用其他文件。是您的配置系统吗→ 工作区根目录:
${JENKINS\u HOME}/Workspace/${ITEM\u FULLNAME}/project
或没有/project
?看起来JENKINS正在这个版本上创建3个工作区。998圈,998-loops@script,及998-loops@tmp. 998-loops@script是唯一有数据的东西。但是,另一个分支同时构建XXX主题和XXX-topic@script.It看起来Jenkins告诉Jenkins文件脚本的一切都是,它已超出定义的$WORKSPACE,而没有@script。即使在原生groovy中执行pwd也会告诉脚本它在$WORKSPACE中工作。这可能是一个bug。用户错误,只是注意到我没有“签出scm”步骤。哇,真有趣。谢谢你的帮助,格洛德!您可以假设,一旦文件开始处理,它就拥有存储库内容的副本。事实并非如此。为了将repo内容引入到流程中,您需要“checkout scm”`node('master'){checkout scm stage“Start”echo“Start”stage“Load File”def myJson=readFile“data.json”}`为什么要进行向下投票?这是一个有效的要求,op和其他人可能已经忘记了。为什么要投否决票?它至少解决了我的问题。向上投票。