Как получить сборку Jenkins Pipeline для отображения истории изменений (изменений) для определенной ветки

Я использую декларативный конвейер и отличные скрипты, чтобы проверить свою ветку. Я оформляю заказ, используя этап оформления заказа:

    [$class: 'GitSCM', 
    branches: [[name: "${selectedBranch}"]], 
    browser: [$class: 'BitbucketWeb', repoUrl: 'myURL'], 
    doGenerateSubmoduleConfigurations: false, 
    extensions: 
    [[$class: 'CloneOption', noTags: false, reference: "${cloneReference}", shallow: true, timeout: 5]], 
    submoduleCfg: [], 
    userRemoteConfigs: [[url: "${projectDetails.repositoryAddress}"]]])

И это прекрасно работает. Однако при просмотре истории изменений она показывает историю моей общей библиотеки, а НЕ для фактической извлеченной ветки. Это означает, что я получаю всю историю моих замечательных изменений jenkins, но не получаю историю создания реального решения / исходного кода. Я не могу придумать способ преодолеть это.

На моей работе с Дженкинсом я вижу это:

Started by user Me

    Revision: 53eb41e0c05fd4cb466268947102990b2b14354e
GroovyImplementation
    Revision: 825d8201904b000f479ebc91c9d244cfb956dd85
refs/remotes/origin/releases/release-2.18

На странице «Изменения» я вижу изменения для «GroovyImplementation» (которых часто нет), но мне нужны изменения для «refs / remotes / origin / Release-2.18», где и находятся значимые изменения.

Точно так же в Stage View я вижу количество коммитов для «GroovyImplementation», а не для ветки выпуска.

Как я могу отобразить контрольную информацию для ветки выпуска без, используя многопоточную сборку?


person Carson Wilson    schedule 14.02.2020    source источник
comment
stackoverflow.com/a/46748508/4311135   -  person Yuri G.    schedule 15.02.2020
comment
Я внес эти изменения, но они не повлияли. Мой Jenkins находится на последней версии на сегодня утром, все плагины обновлены. Он по-прежнему показывает историю изменений для общей библиотеки и не показывает историю для ветви, обновленной на этапе конвейера оформления заказа. Jenkins был перезапущен после активации этой функции, как предлагалось в других сообщениях. Я не уверен, следует ли мне делать свои комментарии здесь или в другой ветке. Другой поток, похоже, относится только к подавлению изменений библиотеки, где большая часть моей проблемы не связана с получением коммитов для ветки при оформлении заказа.   -  person Carson Wilson    schedule 18.02.2020
comment
Итак, просто чтобы было понятно. вы хотите, чтобы изменения рассчитывались для конкретной ветки при каждом запуске этого задания?   -  person Yuri G.    schedule 18.02.2020
comment
Я хочу, чтобы он отображал изменения для ветки, которая была клонирована / скомпилирована / протестирована не с общей библиотекой. В приведенном выше примере GroovyImplementation - это общая библиотека, и я получаю для нее изменения. ... / Release / release-2.18 - это ветка, в которой это задание фактически клонировано, построено, протестировано, опубликовано и т. д., но у меня нет истории изменений для нее. Имеет ли это смысл?   -  person Carson Wilson    schedule 18.02.2020


Ответы (2)


Поскольку вы используете ветку selectedBranch - то, что вы хотите, должно поддерживаться из коробки Плагин шага SCM (changelog по умолчанию имеет значение true).

Однако я обнаружил, что он тоже не работает, поэтому вы можете использовать расширение для этого плагина: [$class: 'ChangelogToBranch', options: [compareRemote: 'myURL', compareTarget: "${selectedBranch}"]]

Как видите, extensions: получает массив массивов, поэтому вы просто добавляете это расширение к существующему, например

extensions: 
[
  [$class: 'CloneOption', noTags: false, reference: "${cloneReference}", shallow: true, timeout: 5], 
  [$class: 'ChangelogToBranch', options: [compareRemote: 'myURL', compareTarget: "${selectedBranch}"]]
],
person Moshisho    schedule 11.10.2020

Журнал изменений по умолчанию рассчитывается для предыдущей сборки, вы можете прочитать его здесь https://github.com/jenkinsci/git-plugin#changelog-extensions. Если вы хотите, чтобы журнал изменений рассчитывался для конкретной ветви, вы можете явно настроить задание, добавив дополнительное поведение Calculate changelog against a specific branch

person Yuri G.    schedule 19.02.2020