Jenkins文本查找器插件,如何将该插件与Jenkins文件一起使用?

Jenkins文本查找器插件,如何将该插件与Jenkins文件一起使用?,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我正在尝试使用编写Jenkins文件,但我不知道它是如何工作的 这是我的密码: pipeline { agent { label { label "master" } } stages { stage('CHECKOUT') { steps{ script{ echo "##[1 /

我正在尝试使用编写Jenkins文件,但我不知道它是如何工作的

这是我的密码:

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
                }
            }
        }
    }
}