currentBuild.changeSets通过在管道Jenkins中提交来剪切消息

时间:2019-04-09 13:52:43

标签: jenkins

当构建作业詹金斯生成变更日志时。但是每条提交消息都以新行开头切入〜72个字符。

当我从字符串中的currentBuild.changeSets获取消息时,仅设置提交的第一行。

詹金斯管道:

node {

    stage 'clean'
    //step([$class: 'WsCleanup'])

    stage 'git'
    git url: 'https://***@***/***/****.git'

   stage 'change'
   passedBuilds = []

  lastSuccessfulBuild(passedBuilds, currentBuild);

  def changeLog = getChangeLog(passedBuilds)
  echo "${changeLog}"

}
def lastSuccessfulBuild(passedBuilds, build) {
if ((build != null) && (build.result != 'SUCCESS')) {
  passedBuilds.add(build)
}
}

@NonCPS
def getChangeLog(passedBuilds) {
    def log = ""
    for (int x = 0; x < passedBuilds.size(); x++) {
        def currentBuild = passedBuilds[x];
        def changeLogSets = currentBuild.changeSets
        for (int i = 0; i < changeLogSets.size(); i++) {
            def entries = changeLogSets[i].items
            for (int j = 0; j < entries.length; j++) {
                def entry = entries[j]
                def hasSummaryMatch = (entry.msg =~ /(#[0-9]{4})/)
                if (hasSummaryMatch) {
                    def numberTask = hasSummaryMatch[0][0]
                    numberTask = numberTask.replace('#', '')
                    def message = entry.msg
                    echo numberTask
                    log += "- [${numberTask}](......) ${message}\n"
                }
            }
        }
    }
    return log;
}

如果看到通过构建提交所做的更改具有多行

enter image description here

Summary

    changelog (details)
    #3157 очень длинный текст, который Jenkins разобьет на 2 строчки. Надо (details)

Commit 49b31854deb27bd13edf6fde33283cb1af8aab89 by fenix_ex

#3157 очень длинный текст, который Jenkins разобьет на 2 строчки. Надо
проверить правильную склейку строк при сборке обновления. А то очень не
красиво получается

我如何获得全文提交?

p.s。 git log在第一行显示完整的消息。

0 个答案:

没有答案