Jenkins 如何运行groovy脚本读取生成原因?
我正在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
作业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()
}
}
注意:我没有测试代码。我刚才给了你一个解决错误的方法