Изменения, не обнаруженные в запросах на включение в плагин конвейера Jenkins - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть 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:

Changes are not shown

Но PR действительно содержал изменения в файлах, и я, конечно, вижу эти изменения в Github.

Кто-нибудь знает, почему Дженкинс не показывает изменения?

1 Ответ

0 голосов
/ 11 января 2019

Вы можете создать журнал изменений, включив шаг Git Changelog в сценарий конвейера Jenkins.

Этот плагин предоставляет объект контекста , который содержит всю информацию, необходимую для создания журнала изменений.Он также может предоставить строку , представляющую собой список изменений, готовый к публикации.

Здесь - скриншот примера журнала изменений Git, созданного этим плагином:

Git Changelog

Более подробную информацию об этом плагине можно найти в его wiki .Надеюсь, это поможет.

...