我有上游工作,对SVN进行民意测验。
如果检测到更改,则开始构建。
构建完成后,上游项目将调用下游项目进行测试。我正在使用“触发器参数化版本”。

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

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

最佳答案

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

还有更多 Action

关于jenkins - 如何将$ {CHANGES}传递给下游工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19576251/

10-15 12:34