如何获取管道詹金斯中所有已修改文件的列表?

Hin*_*nde 1 git jenkins jenkins-pipeline

我正在使用多分支管道,我需要获取已修改文件的列表。

我试过了

git diff $PREVIOUS_COMMIT $COMMIT

但它们具有相同的SHA。

Ste*_*ing 6

根据CloudBees上的这篇文章,从工作流支持插件版本2.2 开始,您也可以在管道内访问此类信息,而无需白名单(与我的其他答案相比,使用沙盒/脚本安全性):

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]
        echo "${entry.commitId} by ${entry.author} on ${new Date(entry.timestamp)}: ${entry.msg}"
        def files = new ArrayList(entry.affectedFiles)
        for (int k = 0; k < files.size(); k++) {
            def file = files[k]
            echo "  ${file.editType.name} ${file.path}"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)