svn multibranch меняет базу в jenkins ci

Я настроил экземпляр jenkins для многоветвевого проекта svn, который запускается хуком после фиксации, передающим имя затронутой ветки в качестве параметра jenkins.
Затем Jenkins извлекает исходники из данной ветки и компилирует их. Это работает достаточно хорошо с одним ограничением.
Если сборки "x" и "x+1" выполняются в одной и той же ветке, jenkins показывает мне изменения для коммита, который запускает сборку "x+1" по ссылке изменений для строить. Если сборки «x» и «x + 1» выполняются в разных ветках, я получаю пустой список изменений в jenkins и строку «Нет изменений, записанных для предыдущей сборки».
Теперь мой вопрос: как я могу позволить jenkins вносить изменения не на основе предыдущей сборки, а на последнюю успешную сборку на основе той же ветки?


person Alexander Powolozki    schedule 14.02.2017    source источник
comment
Являются ли разные филиалы двумя разными работами или одинаковыми? Какой тип работы, фристайл?   -  person Jon S    schedule 14.02.2017
comment
Это бесплатная работа с использованием svn и .net msbuild. У нас есть продукт, в котором несколько задач по изменению обрабатываются параллельно несколькими членами команды. Это всегда один и тот же вызов разных версий (ветвей) исходного кода.   -  person Alexander Powolozki    schedule 14.02.2017
comment
Хорошо, спасибо за это разъяснение. Смотрите мой ответ ниже.   -  person Jon S    schedule 15.02.2017


Ответы (1)


Насколько я знаю, Jenkins всегда вычисляет изменения на основе предыдущей сборки в конкретном задании. Поэтому, если вы запускаете несколько веток в одном и том же задании, вам не повезло. Я бы посоветовал вам изучить один из следующих плагинов:

  • https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Multibranch+Plugin Кажется, что конвейеры — это путь, который можно использовать в любое время, вы добавляете Jenkinsfile в свой репозиторий, который сообщает Jenkins, как построить ваш проект. Плагин Multibranch расширяет это за счет дополнительных функций, позволяющих обнаруживать новые ветки и создавать новые подзадачи.

  • https://wiki.jenkins-ci.org/display/JENKINS/Multi-Branch+Project+Plugin Если вы застряли с заданиями фристайла, попробуйте этот, насколько я понимаю, это задания фристайла, но создает новые подзадачи для каждой ветки. Но, как говорится в ссылке, он был заменен трубопроводами Pipelines и Multibranch.

person Jon S    schedule 14.02.2017
comment
Спасибо за ваше время и исследования, Джон, к сожалению, оба ваших предложения не подходят для меня, так как я хочу иметь только одну работу. Возможно, мне нужно разработать плагин на будущее, который будет корректно собирать изменения для моего случая. На данный момент я могу жить с ограничением, что изменения отображаются только в том случае, если предыдущая сборка была запущена в той же ветке, что и текущая. - person Alexander Powolozki; 15.02.2017