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

时间:2019-04-25 16:51:37

标签: jenkins groovy

我正在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()
    }
}

1 个答案:

答案 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()
    }
}

注意:我尚未测试代码。我只是给你一个解决错误的想法。