我有上游工作,对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/