У меня есть Jenkins, настроенный на сбор данных по запросу (PR).Наш репозиторий является многопроектным репозиторием, и я создал скрипт для обнаружения изменений, которые были внесены в исходный код, и запускаю только тесты, относящиеся к проектам, в которых были внесены изменения (согласно пути измененного файла):
def getChangedProjects() {
Set projects = []
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 files = new ArrayList(entry.affectedFiles)
for (int k = 0; k < files.size(); k++) {
def file = files[k]
// get the project folder name and
// add it to changed projects set
projects.add(file.path.tokenize('/')[1])
}
}
}
return projects.findAll {it != null}
}
Функция Groovy работает должным образом и обнаруживает измененную папку.
Проблема заключается в том, что в большинстве случаев Jenkins не показывает никаких изменений в Jenkins:
Но PR действительно содержал изменения в файлах, и я, конечно, вижу эти изменения в Github.
Кто-нибудь знает, почему Дженкинс не показывает изменения?