我需要扫描Jenkins日志,如果它在日志中有类似“失败”的东西。Jenkins不应该继续并将作业标记为失败。
pdsfdshx1#
log-parser插件可能是你所需要的。它解析Jenkins构建生成的控制台日志。您有两个有用的选项:
log-parser
看一看:https://wiki.jenkins.io/display/JENKINS/Log+Parser+Plugin对于声明性管道,请尝试:
step([$class: 'LogParserPublisher', failBuildOnError: true, parsingRulesPath: '<parser rule file>', useProjectRule: false])
b0zn9rqh2#
使用Text Finder plugin的findText很容易。
// stop if failure found findText alsoCheckConsoleOutput: true, notBuiltIfFound: true, regexp: "${KEY_ERROR_MSG}" if (currentBuild.result == 'NOT_BUILT') { error("${KEY_ERROR_MSG}") }
请注意,这可以在stage中直接运行,这意味着您不需要等待所有stage来运行它。示例如何搜索错误消息,将步骤标记为失败并将构建设置为不稳定(我使用此方法检查ftp Publisher的连接问题):
// Search console log for error text and set build unstable if found findText(textFinders: [ textFinder( regexp: 'ERROR: Exception when publishing', alsoCheckConsoleOutput: true, buildResult: 'UNSTABLE' ) ]) script { if (currentBuild.result == 'UNSTABLE') { catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') { error("FTP publishing build artifacts failed") } } }
f4t66c6m3#
我在解析器配置中这样做,上面的提议失败了:
# ERRORS error /make to fail/
在Jenkins管道中是这样的:
node ('') { try { node { echo 'make to fail' } } finally { node { step([$class: 'LogParserPublisher', failBuildOnError: true, parsingRulesPath: '/opt/jenkins/log_parsers/log_parser', useProjectRule: false]) } } }
无论如何,还没有找到在解析器配置中使用这样的东西来获得构建'UNSTABLE'的方法:
# WARNINGS warning /make to unstable/
有人知道如何做到这一点吗?
3条答案
按热度按时间pdsfdshx1#
log-parser
插件可能是你所需要的。它解析Jenkins构建生成的控制台日志。
您有两个有用的选项:
看一看:https://wiki.jenkins.io/display/JENKINS/Log+Parser+Plugin
对于声明性管道,请尝试:
b0zn9rqh2#
使用Text Finder plugin的findText很容易。
请注意,这可以在stage中直接运行,这意味着您不需要等待所有stage来运行它。
示例如何搜索错误消息,将步骤标记为失败并将构建设置为不稳定(我使用此方法检查ftp Publisher的连接问题):
f4t66c6m3#
我在解析器配置中这样做,上面的提议失败了:
在Jenkins管道中是这样的:
无论如何,还没有找到在解析器配置中使用这样的东西来获得构建'UNSTABLE'的方法:
有人知道如何做到这一点吗?