我正在Jenkins中编写第一个Groovy脚本,并在上游job A
调用job B
。
在工作B中,我需要阅读GERRIT_CHANGE_NUMBER,它触发了工作A。
在下面的示例中,如何在下游作业B中获取28331
,其在作业B的控制台中的显示方式如下:
Started by upstream project some_up_project build number 100
originally caused by:
Triggered by Gerrit: https://gerrit-server.com/28331
我看着this这样的答案,但不确定如何在詹金斯中做到这一点。
在作业B中,我做了Add build step
以添加Execute system Groovy script
部分,然后在其下拉列表中选择了Groovy command
,并在下面为测试目的添加的Groovy脚本区域中给出了错误与unable to resolve class Run.cause ...
一样,也尝试了许多其他方法,但没有任何效果。
import hudson.model.Run
for (cause in Run.getCauses()) {
if (cause instanceof Run.Cause.UserIdCause) {
println cause.getUserName()
}
}
答案 0 :(得分:1)
没有这样的课程Run.Cause
从可行的方法开始:hudson.model.Run
搜索文档:hudson.model.Run.getCauses()
方法返回:列表<{Cause>
因此,将此类导入到您的代码中并使用它:
import hudson.model.Cause
import hudson.model.Run
for (cause in Run.getCauses()) {
if (cause instanceof Cause.UserIdCause) {
println cause.getUserName()
}
}
注意:我尚未测试代码。我只是给你一个解决错误的想法。