这个问题在詹金斯(Jenkins)吉拉(Jira)上被问到了,但它在那里被遗弃了,所以我在这里尝试Stack Overflow的运气。
https://issues.jenkins-ci.org/browse/JENKINS-55024
升级到“ Pipeline:Job”插件的2.29版时,如果出现错误,用户将获得完全空的控制台输出。
降级到2.28版可解决此问题。
在调查时,我们发现了一个错误日志,指出找不到日志文件:
java.io.FileNotFoundException:/ var / lib / jenkins / jobs / iText-merge-pipeline / builds / 319 / log(无此类文件或目录)
有关控制台输出和日志的屏幕截图,请参见附件。
如果我阅读了2.29版的更改日志
JENKINS-54128:更改WorkflowRun#getLogFile的实现,以避免每次调用该方法时都创建一个新的临时文件。 修复:打开管道的日志文件时发生错误时,请勿调用WorkflowRun#getLogFile,以避免记录其他堆栈跟踪 我的猜测是,在管道脚本中引发错误时,也不会调用WorkflowRun#getLogFile。
这个问题已经浮出水面,因为“下一代警告”插件依赖于“ Pipeline Job”插件> 2.28。
有几个问题可供参考。我会尝试在其中添加一些结构,然后一个一个地回答它们。
问题1 我不确定您要什么样的答案:
构建文件夹的屏幕截图? 构建文件夹的目录列表? 构建文件夹的压缩包? 我没有对运行Jenkins的服务器的ssh访问权限,并且我不知道您想要什么,因此我将采用蛮力方法。困难也可以。我要做一份运行ls -ld $(找到/ var / lib / jenkins)的工作。请让我知道您到底需要什么,因为我想目录清单中可能还包含机密信息。
问题2 如何确定日志文件是否存在?
问题3 哪个詹金斯记录的确切?如果我知道去哪里找,我很乐意为您提供信息。
问题4 这是一个模棱两可的问题,字面上的答案将是“我知道”,但这将无济于事。相反,我将回答重现步骤:
Pipeline作业插件的版本为1.28。 开始失败的作业,即作业1,然后完成它。 查看作业1的控制台输出->有作业1的控制台输出。 将管道作业插件升级到> 1.28。 重新启动詹金斯。 查看作业1的控制台输出->有作业1的控制台输出。 开始失败的作业,作业2,然后完成它。 查看作业2的控制台输出->作业2的控制台输出为空。 将管道作业插件降级到1.28。 重新启动詹金斯。 查看作业1的控制台输出->有作业1的控制台输出。 查看作业2的控制台输出->作业2的控制台输出为空。 开始失败的作业,作业3,然后完成它。 查看作业3的控制台输出->有作业3的控制台输出。 问题5 对于更新之前的版本,确实存在控制台日志,如我对问题4的回答所述。
我不知道标记的重要性或重要性,如果这样,我该如何验证?
预计步骤日志将被破坏。
->我不明白这是什么意思,请您解释一下?
问题6 这是Marco Andries或Jens Beyer的问题吗?
问题7 这是Marco Andries还是Jens Beyer / Devin Nusbaum的问题?
问题8 是的,我们仍然会遇到此问题。
问题10 test-pipeline-Jenkinsfile