Jenkins文本查找器插件,如何将该插件与Jenkins文件一起使用?
我正在尝试使用编写Jenkins文件,但我不知道它是如何工作的 这是我的密码:Jenkins文本查找器插件,如何将该插件与Jenkins文件一起使用?,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我正在尝试使用编写Jenkins文件,但我不知道它是如何工作的 这是我的密码: pipeline { agent { label { label "master" } } stages { stage('CHECKOUT') { steps{ script{ echo "##[1 /
pipeline {
agent {
label {
label "master"
}
}
stages {
stage('CHECKOUT') {
steps{
script{
echo "##[1 / 4] ERROR"
}
publishers {
textFinder("*ERROR*", '', true, false, true)
}
}
}
}
}
--这不是自动的。鉴于文本查找器插件自2014年1月以来一直没有更新,而且我在列表中也没有看到它,这可能根本不可能。有关潜在的解决方法,请参见@mghicks已经提到的,并不是每个插件都支持Jenkins管道。在这种情况下,文本查找器插件不支持它。 例如,您可以为它编写自己的groovy函数: 例如:
pipeline {
agent {
label {
label "master"
}
}
stages {
stage ('Check logs') {
steps {
filterLogs ('ERROR', 2)
}
}
}
}
我们正在调用一个函数filterLogs,我们提供参数'ERROR'(在日志中搜索单词ERROR),并定义单词'ERROR'的出现(当单词ERROR出现两次时,会使作业不稳定):
我们的filterLogs函数如下所示:
#!/usr/bin/env groovy
import org.apache.commons.lang.StringUtils
def call(String filter_string, int occurrence) {
def logs = currentBuild.rawBuild.getLog(10000).join('\n')
int count = StringUtils.countMatches(logs, filter_string);
if (count > occurrence -1) {
currentBuild.result='UNSTABLE'
}
}
如果不使用共享库或其他东西,也可以在管道内部实现该功能。这是一个非常奇怪的解决方法链接。上面写着“不,你不能”。@AndreyRegentov我同意。我想知道是否有人能够看到这个问题的历史——它曾经有过另一个答案吗?我不认为我会像今天看起来的那样与之关联。TextFinder支持now管道:这与Jenkins管道无关。下面提到的是正确的。这个解决方案要求您在幕后进入java,这对于运行其他语言和部署的人来说是一个邪恶的步骤。但这一解决方案在两年前并不存在。为管道编写groovy脚本没有缺点,与您正在构建/部署的语言无关。Jenkins支持共享库设置,您可以在其中编写可重用的.groovy脚本,这样您就可以在一个地方管理魔法,并在多个管道中继续使用它:
pipeline {
agent {
label {
label "master"
}
}
stages {
stage('CHECKOUT') {
steps{
script{
echo "##[1 / 4] ERROR"
}
publishers {
findText regexp: failure, alsoCheckConsoleOutput: true notBuiltIfFound: true
}
}
}
}
}