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