【问题标题】:How to get Jenkins build history in a Groovy script? Which information are available for every build?如何在 Groovy 脚本中获取 Jenkins 构建历史?每个构建都有哪些信息可用?
【发布时间】:2021-07-23 01:58:52
【问题描述】:

我有一个作为共享库运行并获取 jenkins 构建详细信息的 groovy 脚本。

projects = Jenkins.instance.getJob('ABB').getItems()

for( build in projects.getAllJobs())
{
 //process build data
  build.getDuration();
  build.getTime();
  etc.

}

谁能告诉我如何查看我可以使用 build 变量访问的所有 get 方法(与构建相关的所有元数据)?有这方面的Javadoc吗?我找不到?截至目前,它访问持续时间和时间,但我想知道我能获得哪些所有信息。

【问题讨论】:

  • 我在工作中被问到怎么做,所以我准备了一个脚本:stackoverflow.com/q/67370232/4944847。我没有在这个线程中扩展我的答案,因为这里的主要问题是如何获得可用的方法。

标签: jenkins jenkins-plugins jenkins-groovy jenkins-job-dsl hudson-plugins


【解决方案1】:

是的,Jenkins 提供了 Javadoc:https://javadoc.jenkins.io/

buildhudson.model.Run 接口的一个实例。

当然,实例可能会提供更多详细信息,因为每种类型的作业(FreeStyle、Pipeline 等)都可能返回具有更多详细信息的对象。例如,新管道使用org.jenkinsci.plugins.workflow.job.WorkflowRun

最简单的选择是检查类,然后搜索它的 Javadoc :)

for (def build in projects.allJobs) {
    echo "${build.class}"
}

【讨论】:

  • 谢谢。它有帮助。你能告诉我一件事吗。在 jenkins 类中,如何查看“instance”变量的返回类型?我的意思是“Jenkins.instance”?
  • Groovy 中的 Jenkins.instance 与 Java 中的 Jenkins.getInstance() 相同。所以你对这个方法声明感兴趣:jenkins.model.Jenkins#getInstance
  • 好的,知道了。我以前没有使用过groovy。有没有像 Jenkins.instance 这样的规则被解释为 Jenkins.getInstance() 的意思?因为方法调用是像 ClassName.Function 一样完成的,就像我在 build.getTime() 等的代码中一样,
  • Groovy 中的 Getter 和 setter 描述如下:groovy-lang.org/style-guide.html#_getters_and_setters。您可以将obj.getTime() 替换为obj.time,将obj.isFoo() 替换为obj.foo,将obj.setBar(value) 替换为obj.bar = value
猜你喜欢
  • 2018-12-19
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多