Jenkins管道中的自定义变更日志

Jenkins管道中的自定义变更日志,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我想知道是否有可能为Jenkins管道显示一个自定义变更日志。理想情况下,我希望传播下游变更日志,但失败的是,我尝试创建一个从下游构建派生的自定义变更日志。但是,它似乎不起作用(也没有查看管道工作区的选项) 我想知道这是不是我弄错了,或者它是否得到了支持 这是我正在测试的示例代码 node('master') { stage('Source') { build 'SourceBuild' def rootDir = currentBuild.r

我想知道是否有可能为Jenkins管道显示一个自定义变更日志。理想情况下,我希望传播下游变更日志,但失败的是,我尝试创建一个从下游构建派生的自定义变更日志。但是,它似乎不起作用(也没有查看管道工作区的选项)

我想知道这是不是我弄错了,或者它是否得到了支持

这是我正在测试的示例代码

node('master')
{
    stage('Source')
    {
        build 'SourceBuild' 

        def rootDir = currentBuild.rawBuild.getRootDir().toString()
        echo rootDir
        def changelog = new File(rootDir, "changelog.xml")
        PrintWriter writer = new PrintWriter(new FileWriter(changelog));
        writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        writer.println("<changelog>");
        writer.println(String.format("\t\t<user>%s</user>", 'User'));
        writer.println(String.format("\t\t<comment>Change</comment>", 'Comment'));
        writer.println("\t</changeset>");
        writer.println("</changelog>");
        writer.close();
    }
}
节点(“主节点”)
{
阶段('源')
{
生成“SourceBuild”
def rootDir=currentBuild.rawBuild.getRootDir().toString()
回声根目录
def changelog=新文件(rootDir,“changelog.xml”)
PrintWriter writer=新的PrintWriter(新文件编写器(变更日志));
writer.println(“”);
writer.println(“”);
writer.println(String.format(“\t\t%s”,“User”));
writer.println(String.format(“\t\tChange”,“Comment”);
writer.println(“\t”);
writer.println(“”);
writer.close();
}
}

非常感谢

在Jenkins管道中,我注意到有一个名为
currentBuild
的全局变量。它有一个名为changeSets的可读属性。我宁愿使用管道这种方法,而不是使用changelog.xml

stage('some name') {
    def gitChangeSetList = currentBuild.changeSets
    formatGitChangeLog(gitChangeSetList)
}

def formatGitChangeLog(GitChangeSetList changeSetList) {
    def formatStr = ""
        for (setItem in changeSetList) {
            for (change in setItem.getLogs()) {
                formatStr += "${change.getAuthor().getDisplayName()}: ${change.getMsg()}\n"
            }
        }
    return formatStr
}
currentBuild.changeSets
的类型为。从javadoc中,我们可以导出所涉及的各种方法