自上次成功构建以来,如何使用Groovy获取有关Jenkins的提交信息?

自上次成功构建以来,如何使用Groovy获取有关Jenkins的提交信息?,第1张

自上次成功构建以来,如何使用Groovy获取有关Jenkins的提交信息?

在gradle / maven步骤之后->执行系统常规脚本,添加新的构建步骤。

适应性代码:

import com.tikal.jenkins.plugins.multijob.*import hudson.*import hudson.model.*import hudson.plugins.git.*import hudson.slaves.*import hudson.tasks.*def ln = System.getProperty('line.separator')println "---------------Groovy Changelog script Started---------------$ln"def lastSuccesfulBuild = build.previousNotFailedBuilddef failed = build.result != hudson.model.Result.SUCCESSprintln "Last Succesful Build: ${lastSuccesfulBuild}"println "Current Build Result, is failed?: ${failed}"def currResult = build.resultdef prevResult = build.previousBuild?.result ?: nulldef consecutiveSuccess = currResult == hudson.model.Result.SUCCESS && prevResult == hudson.model.Result.SUCCESSdef builds = []def changes = []def count = 0if (consecutiveSuccess) {    println "Last Build was sucessful, getting latest changes$ln"    builds << build    def changeItems = build.changeSet.items    println "Change Items: ${changeItems}$ln"    count += changeItems.length    changes += changeItems as List} else {    println "Last Build was not sucessful, getting changes from all failed build as well$ln"    println "BUILD: $build$ln"    println "Hudson version: $build.hudsonVersion$ln"    println "Change set: $build.changeSet$ln"    println "Change set items: $build.changeSet.items$ln"    while (lastSuccesfulBuild) {        builds << lastSuccesfulBuild        def changeSet = lastSuccesfulBuild.changeSet        if (!changeSet.emptySet) { def changeItems = lastSuccesfulBuild.changeSet.items count += changeItems.length changes += changeItems as List        }        lastSuccesfulBuild = lastSuccesfulBuild.nextBuild    }}def file = new File(build.getEnvVars()["WORKSPACE"] + '\changelog')file.delete()file = new File(build.getEnvVars()["WORKSPACE"] + '\changelog')if (count ==0){    file << "No changes.$ln"}changes.each { item ->    println "item: $item$ln"    println "author: $item.authorName$ln"    println "msg: $item.msg$ln"    println "id: $item.id$ln"    println "revision: $item.revision$ln"    println "comment: $item.comment$ln"    println "commentAnnotated: $item.commentAnnotated$ln"    println "affectedFiles: $item.affectedFiles$ln"    println "affectedPaths: $item.affectedPaths$ln"    println "commitId: $item.commitId$ln"    println "timestamp: $item.timestamp$ln"    println "date: $item.date$ln"    file << "Commit ID: $item.id, by $item.author on $item.date, timestamp: $item.timestamp$ln"    file << "$item.comment$ln"    item.affectedFiles.each { cl ->         println "editType: $cl.editType.description$ln"        println "changeSet: $cl.changeSet$ln"        println "path: $cl.path$ln"        println "src: $cl.src$ln"        println "dst: $cl.dst$ln"        file << "$cl.editType.description: $cl.path$ln"    }    file << "$ln"}println "---------------Groovy Changelog script Finished---------------$ln"


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5010438.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存