【发布时间】:2019-07-09 05:30:17
【问题描述】:
我有一个 Jenkins 管道构建,我想遍历自上次构建以来更新的所有文件。我环顾四周,认为当前构建对象的 changeSets 变量可能有效。所以我尝试了这个:
def gitUrl = "git@gitlab.xxx.com:me/myrepo.git"
def gitResponse = dir(".") { checkout([
$class: 'GitSCM', branches: [[name: '*/master']],
userRemoteConfigs: [[url: gitUrl,credentialsId:'xxxkey']]
]) }
// don't do anything if nothing changed
if(gitResponse.GIT_COMMIT == gitResponse.GIT_PREVIOUS_COMMIT) {
echo "No changes detected."
return
}
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 "Change detected: ${entry}"
}
}
但我收到此错误:
Caused: java.io.NotSerializableException: hudson.plugins.git.GitChangeSetList
有什么方法可以列出自上次构建以来每个更改的文件?
【问题讨论】:
标签: jenkins