构建输出:AnsiColor 与 Log Parser
August 25, 2024About 2 min
构建输出:AnsiColor 与 Log Parser
两个跟「构建日志怎么看」相关的插件:AnsiColor 让控制台支持 ANSI 颜色,Log Parser 按规则把日志里的错误/警告高亮分段。
AnsiColor:彩色控制台输出
ansicolor 插件。声明式 Pipeline 里在 options 加 ansiColor('xterm'),之后 echo 的 ANSI 转义序列就会被渲染成颜色:
pipeline {
options {
timestamps()
ansiColor('xterm')
}
agent { node { label "build-node-1"; customWorkspace "E:\\workspace" } }
stages {
stage('Init') {
steps {
script {
echo '\033[34mHello\033[0m \033[33mcolorful\033[0m \033[35mworld!\033[0m'
}
}
}
}
}
也可以不在 options 全局开,而是用 ansiColor('vga') { ... } 步骤局部包住某段;一条 Pipeline 里多个 ansiColor 步骤可以共存:
pipeline {
options { timestamps() }
agent { node { label "build-node-1"; customWorkspace "E:\\workspace" } }
stages {
stage('Init') {
steps {
script {
echo 'this will be rendered as-is' // 没包在 ansiColor 里,原样输出
ansiColor('vga') {
echo '\033[42m\033[97mWhite letters, green background\033[0m'
}
}
}
}
}
}
Log Parser:日志解析与高亮
log-parser 插件解析构建控制台日志,能:高亮关心的行(错误/警告/信息)、把日志分段、统计各段的错误/警告/信息数量并在构建页给出汇总、把汇总链回日志正文方便跳转。规则文件要放在 master 的 Jenkins 安装目录下。
解析规则文件格式
每行指定一个级别和一个正则(Java Pattern 语法,用 / 包住):
ok/error/warn:标记问题行。info:在报告里高亮成蓝色,并生成快速跳转链接。start:和info一样高亮+生成跳转链接,此外还用来对该段之后的错误/警告分组。
error /ERROR/
几条规则:
大小写不敏感用 Java 内嵌标志
(?i):error /(?i)^error /。多条规则匹配同一行时,第一条生效。例如:
ok /^javadoc:/ error /Error/对日志行
javadoc: Error : could not find something,因为^javadoc:先匹配,这行被判为ok,不会高亮成错误。以
#开头的行和空行被忽略,可用来写注释、留空。
在 Pipeline 里发布解析结果
post {
always {
step([$class: 'LogParserPublisher',
failBuildOnError: true,
parsingRulesPath: 'C:\\Program Files\\Jenkins\\AutoTestParsingRules',
showGraphs: true,
unstableOnWarning: true,
useProjectRule: false])
}
}