Подтвердить что ты не робот

Jenkins после перезапуска запускает спецификацию на удаленных ветвях

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

4b9b3361

Ответ 1

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

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

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

    Эта функция доступна на странице конфигурации проекта, в разделе "Управление исходным кодом", затем найдите git и ваше определение хранилища. Под ними вы должны иметь кнопку "Дополнительно", и после щелчка по ней должна быть видна опция "Удаленные ветки" Prune перед сборкой. Убедитесь, что он проверен, и вы должны быть добрым.

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