Jenkinsfile基于Groovy语法,如果采用groovy的读写文件函数,会出现错误。
例如
File sampleFile = New File(“Dockerfile”)
会出现找不到文件的错误。
原因在于:
采用groovy语法,默认在jenkins的master节点,不是在slave节点!
而一般代码都会在slave节点上,因此,会出现找不到文件的错误。
Stack Overflow有介绍filePath的class处理,实际应用有难度,建议采用如下更简单方法:
如果需要读写文件,可以采用Jenkins的readFile或writeFile
https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#readfile-read-file-from-workspace
如果你不愿意使用groovy,使用shell语法来操作文件,也是可行的。
本文介绍了在Jenkinsfile中使用Groovy语法进行文件读写的常见问题及解决方法。通常,直接使用Groovy的文件操作函数会在Jenkins的Master节点而非Slave节点执行,导致无法找到文件。推荐使用Jenkins提供的readFile或writeFile步骤,或通过Shell语法来处理文件。
2278

被折叠的 条评论
为什么被折叠?



