Jenkins pipeline中的自定义变更日志



我想知道是否有可能为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("tt<user>%s</user>", 'User'));
        writer.println(String.format("tt<comment>Change</comment>", 'Comment'));
        writer.println("t</changeset>");
        writer.println("</changelog>");
        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的类型为GitChangeSetList。从javadoc中,我们可以派生出GitChangeSet中涉及的各种方法。

最新更新