如何将$ {CHANGES}传递给下游工作?

时间:2013-10-24 20:43:07

标签: jenkins hudson jenkins-plugins hudson-plugins

我有上游工作,轮询SVN的变化。 如果检测到更改,则启动构建。 构建之后,上游项目调用下游项目进行测试。我正在使用“Trigger Parameterized Build”。

我希望下游项目能够发送一封电子邮件,其中包含导致构建/测试的测试结果和SVN更改。但问题是如果我在下游使用$ {CHANGES}变量,它似乎是空的。

如何将$ {CHANGES}从上游项目传递到下游项目?

2 个答案:

答案 0 :(得分:3)

您可以使用groovy脚本获取更改集或所需的值:

def jenkins = Jenkins.getInstance()
def job = jenkins.getItem(jobName)
def bld = job.getBuildByNumber(buildNumber)
def changeSet = bld.getChangeSet()

然后它依赖你使用的scm插件,例如你可以使用git-plugin:

获取每项更改的修订:

changeSet.each{
    println it.getRevision()
}

获取每次更改的消息:

changeSet.each{
    println it.getMsg()
}

受影响的路径:

changeSet.each{
   println it.getAffectedPaths()
}

获取作者姓名:

changeSet.each{
    println it.getAuthorName()
}

以及更多行动

答案 1 :(得分:0)

我看到All Changes Plugin更新了更改页面。不知道$ Changes是否也填充了该信息。

如果这不起作用,请查看Get access to Build Changelog in Jenkins