如何将Jenkins控制台输出保存到文本文件中

111次阅读
没有评论

问题描述

想知道如何将Jenkins控制台输出保存到文本文件中,以便与他人共享。他想知道是否有办法实现这个需求。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

如果你只是想访问日志并将其作为文本文件下载到工作空间,可以使用以下方法:
1. 使用${BUILD_URL}/consoleText将日志文件的URL替换为你的作业URL。
2. 在Linux上,你可以使用wget命令将日志文件下载到工作空间。使用以下命令:

wget ${BUILD_URL}/consoleText
  1. 在Windows上,你可以使用curl命令将日志文件下载到工作空间。使用以下命令:
curl ${BUILD_URL}\consoleText -OutFile C:\SomeLocation\SomeFile.txt

请注意,实际的日志文件位于主机机器上。你可以在以下位置找到它:

$JENKINS_HOME/jobs/$JOB_NAME/builds/lastSuccessfulBuild/log

方案2

如果你不想使用curlwget,你可以使用以下方法获取Jenkins控制台日志:
1. 使用以下命令将控制台输出保存到文本文件中:

writeFile file: "jenkins_console_output.txt", text: currentBuild.rawBuild.logFile.text
  1. 如果你想去除控制台输出中的AnsiColorer,你可以使用以下命令:
sh 'sed -ri "s/\\x1b\\[8m.*?\\x1b\\[0m//g" jenkins_console_output.txt'

请注意,currentBuild.rawBuild.logFile.text将返回带有注释的日志。\x1b\[8m.*?\x1b\[0m是一个正则表达式,用于匹配AnsiColorer。sed -ri命令用于使用正则表达式更新文件。
以上是将Jenkins控制台输出保存到文本文件的两种方法。你可以根据自己的需求选择适合你的方法。

正文完