一尘不染

Jenkins Text finder插件,如何将此插件与jenkinsfile一起使用?

jenkins

我正在尝试使用Text Finder插件编写jenkinsfile ,但我不知道它是如何工作的。

这是我的代码:

pipeline {
    agent {
        label {
            label "master"
        }            
    }
    stages {
        stage('CHECKOUT') {
            steps{
                script{
                    echo "##[1 / 4] ERROR"
                }
                publishers {
                    textFinder("*ERROR*", '', true, false, true)
                }
            }
        }
    }
}

阅读 552

收藏
2020-07-25

共1个答案

一尘不染

正如@mghicks已经提到的,并不是每个插件都支持Jenkins管道。在这种情况下,Text
Finder插件不支持它。例如,您可以为此编写自己的groovy函数:

例如:

pipeline {
    agent {
        label {
            label "master"
        }            
    }

    stages {
        stage ('Check logs') {
            steps {
                filterLogs ('ERROR', 2)
            }
        }
    }
}

我们正在调用filterLogs函数,并提供参数“ ERROR”(在您的日志中搜索ERROR),并定义单词“
ERROR”的出现(当ERROR出现2次时,会使工作不稳定) ):

我们的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'
    }
}

如果不使用共享库或其他东西,也可以只在管道内部实现该功能。

2020-07-25