我正在尝试使用Text Finder插件编写jenkinsfile ,但我不知道它是如何工作的。
这是我的代码:
pipeline { agent { label { label "master" } } stages { stage('CHECKOUT') { steps{ script{ echo "##[1 / 4] ERROR" } publishers { textFinder("*ERROR*", '', true, false, true) } } } } }
正如@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' } }
如果不使用共享库或其他东西,也可以只在管道内部实现该功能。