5

我有上游工作轮询 SVN 的变化。如果检测到更改,则开始构建。构建完成后,上游项目调用下游项目进行测试。我正在使用“触发参数化构建”。

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

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

4

2 回答 2

4

您可以使用 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()
}

还有更多动作

于 2016-01-27T09:12:25.510 回答
0

我看到了一个更新更改页面的所有更改插件。不知道 $Changes 是否也填充了该信息。

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

于 2013-10-25T14:18:42.953 回答