Я использую Jenkins с репозиторием Github, а после перезапуска Jenkins запускает спецификацию на всех ветвях, даже на тех, которые удалены из репо. Как заставить jenkins запускать спецификации только для реальных ветвей репо?
Jenkins после перезапуска запускает спецификацию на удаленных ветвях
Ответ 1
Это происходит, поскольку в вашем локальном репозитории клиентская сторона все еще имеет все ветки, теги и т.д. Чтобы избежать использования их во время процесса сборки, есть несколько сценариев, которые вы можете рассмотреть:
-
Плагин Jenkins git позволяет запускать
git remote prune
перед каждой сборкой. Поскольку документация для команды довольно конкретна, она будет делать именно то, что вы хотели:Удаляет все ветки скрытого отслеживания. Эти устаревшие ветки уже удалены из удаленного репозитория, на который ссылаются, но все еще локально доступны в "remotes/".
Эта функция доступна на странице конфигурации проекта, в разделе "Управление исходным кодом", затем найдите git и ваше определение хранилища. Под ними вы должны иметь кнопку "Дополнительно", и после щелчка по ней должна быть видна опция "Удаленные ветки" Prune перед сборкой. Убедитесь, что он проверен, и вы должны быть добрым.
- Второй вариант, который используется в моих Jenkins и тот, который я лично предпочитаю, заключается в использовании Плагин очистки рабочей области. Этот плагин удалит всю рабочую область заданного задания до или после выполнения сборки проекта. Таким образом, это создаст чистую свежую среду для вашего Maven, Ant, [...] *, что бы использовать для построения проекта. И да - для этого потребуется полная проверка проекта, что в некоторых случаях может занять довольно много времени, но оно даст 100% -ное глупое решение без ошибок, в котором все файлы будут свежими, поскольку разработчики намеревались их быть.