Jenkins管道:groovy:捕获输出中的特定日志

时间:2017-12-05 07:12:49

标签: jenkins groovy jenkins-pipeline

由于text finder plugin不支持管道,我们不会看到另一个解决方案,然后编写一些groovy函数,它将捕获我们的Jenkins输出日志并搜索将作为参数的字符串。

我们使用声明性管道并使用托管共享库,以便我们可以重用该函数。

如果匹配,我们希望构建不稳定。

这就是我们现在拥有的(这个脚本在我们的管道中使用job_name(test)和一个字符串调用)。

#!/usr/bin/env groovy

def call(String jobname, String build_string) {
  echo "Hello, ${jobname}."

  def job = Jenkins.instance.items.find { it.name == jobname }
    for (build in job.builds) {
        def log = build.log
        if (log.contains(build_string)) {
            println "${job.name}: ${build.id}"
        }
    }
}

It fails at:
Hello, test.
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
groovy.lang.MissingPropertyException: No such property: builds for class: java.lang.Boolean
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)

我们做错了什么?

0 个答案:

没有答案