问题描述
想知道如何将Jenkins控制台输出保存到文本文件中,以便与他人共享。他想知道是否有办法实现这个需求。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
如果你只是想访问日志并将其作为文本文件下载到工作空间,可以使用以下方法:
1. 使用${BUILD_URL}/consoleText
将日志文件的URL替换为你的作业URL。
2. 在Linux上,你可以使用wget
命令将日志文件下载到工作空间。使用以下命令:
wget ${BUILD_URL}/consoleText
- 在Windows上,你可以使用
curl
命令将日志文件下载到工作空间。使用以下命令:
curl ${BUILD_URL}\consoleText -OutFile C:\SomeLocation\SomeFile.txt
请注意,实际的日志文件位于主机机器上。你可以在以下位置找到它:
$JENKINS_HOME/jobs/$JOB_NAME/builds/lastSuccessfulBuild/log
方案2
如果你不想使用curl
或wget
,你可以使用以下方法获取Jenkins控制台日志:
1. 使用以下命令将控制台输出保存到文本文件中:
writeFile file: "jenkins_console_output.txt", text: currentBuild.rawBuild.logFile.text
- 如果你想去除控制台输出中的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控制台输出保存到文本文件的两种方法。你可以根据自己的需求选择适合你的方法。
正文完