Jenkins 如何运行groovy脚本读取生成原因?

Jenkins 如何运行groovy脚本读取生成原因?,jenkins,groovy,Jenkins,Groovy,我正在Jenkins中编写第一个groovy脚本,有一个上游作业a,它调用作业B 在工作B中,我需要读取触发工作A的GERRIT_CHANGE_编号 在下面的示例中,如何在下游作业B中获取28331,其在作业B的控制台中打印如下: Started by upstream project some_up_project build number 100 originally caused by: Triggered by Gerrit: https://gerrit-server.com/283

我正在Jenkins中编写第一个groovy脚本,有一个上游
作业a
,它调用
作业B

在工作B中,我需要读取触发工作A的GERRIT_CHANGE_编号

在下面的示例中,如何在下游作业B中获取
28331
,其在作业B的控制台中打印如下:

Started by upstream project some_up_project build number 100
originally caused by:

Triggered by Gerrit: https://gerrit-server.com/28331
我看了这么多答案,但不知道如何在詹金斯做到这一点

在作业B中,我添加了
addbuildstep
来添加
executesystemgroovy script
部分,然后在下拉菜单中选择了
Groovy command
,在下面为测试目的添加的Groovy script区域中,由于
无法解析类Run.cause…
,它给出了错误,因为它也尝试了许多其他方法,但没有任何效果

import hudson.model.Run
for (cause in Run.getCauses()) {
    if (cause instanceof Run.Cause.UserIdCause) {
        println cause.getUserName()
    }
}

没有这样的类
Run.Cause

从有用的东西开始:
hudson.model.Run

搜索文档:

该方法返回:List

因此,将此类导入代码并使用它:

import hudson.model.Cause
import hudson.model.Run
for (cause in Run.getCauses()) {
    if (cause instanceof Cause.UserIdCause) {
        println cause.getUserName()
    }
}
注意:我没有测试代码。我刚才给了你一个解决错误的方法