Дженкинс после перезагрузки запускает спецификацию на удаленных ветках - PullRequest
13 голосов
/ 05 января 2012

Я использую Jenkins с репозиторием Github, и после перезапуска Jenkins запускает спецификации для всех ветвей, даже для тех, которые удалены из репо. Как заставить Дженкинса запускать спецификации только на реальных ветках репо?

1 Ответ

14 голосов
/ 04 мая 2012

Это происходит, поскольку у вас все еще есть ветки, теги и т. Д. В вашем локальном хранилище на стороне клиента. Чтобы избежать их использования в процессе сборки, есть несколько сценариев, которые вы можете рассмотреть:

  1. Плагин Jenkins Git позволяет запускать git remote prune перед каждой сборкой. Поскольку документация для команды довольно специфична, она будет делать именно то, что вы хотели:

    Удаляет все устаревшие ветви отслеживания. Эти устаревшие ветви уже были удалены из удаленного репозитория, на который ссылается, но по-прежнему доступны локально в "remotes /".

    Эта функция доступна на странице конфигурации проекта, раздел Управление исходным кодом , затем найдите Git и определение вашего репозитория. Под ними должна быть кнопка Advanced , а после нажатия на нее должна быть видна опция Удаление удаленных веток перед сборкой . Удостоверьтесь, что это проверено, и Вы должны быть хорошими, чтобы пойти.

  2. Второй вариант, который используется в моем Jenkins, и тот, который я лично предпочитаю, это использовать Плагин очистки рабочего пространства . Этот плагин удалит всю рабочую область заданного задания до или после выполнения сборки проекта. Таким образом, это создаст чистую, только что проверенную среду для Вашего Maven, Ant, [...] * того, что можно использовать для построения проекта. И да - это потребует полной проверки проекта, что в некоторых случаях может фактически занять довольно много времени, но это даст 100% безошибочное решение, в котором все файлы будут свежими, как разработчики намеревались их быть.
...