Интеграция Дженкинс и ГитБлит

Есть ли способ настроить Jenkins и GitBlit так, чтобы сборки запускались автоматически всякий раз, когда новый код помещается в git?

Я слышал об использовании сценариев hook и post-jenknkins в GitBlit и о настройке 'Poll SCM' в Jenkins, но, возможно, существуют более сложные конфигурации?

Большое спасибо.

1 ответ

Есть два способа использовать Jenkins и GitBlit для создания вашего кода. Во-первых, Jenkins должен опросить ваш SCM (в данном случае GitBlit) на предмет изменений, а во-вторых, настроить перехват после получения в Gitblit.

Опрос GitBlit для внесения изменений является самым простым в настройке, но с дополнительными издержками на сервере, на котором работает Jenkins. Основная предпосылка заключается в том, что Дженкинс клонирует ваш репозиторий и сравнивает его с предыдущим клоном в поисках изменений. Если есть разница, она запускает сборку. При большом количестве рабочих мест и нескольких репозиториях это может облагать налогом ваш сервер jenkins и, возможно, сервер gitblit. Для настройки просто установите флажок Опрос SCM и выберите расписание. В поле расписания используется синтаксис cron и нажатие на? Рядом с полем предоставлю вам пример.

Настройка перехвата после получения более сложна, но предоставляет вам истинную семантику сборки при фиксации. Теперь есть два способа сделать это в Jenkins, Remote Trigger или использовать крючок Дженкинса от Gitblit. Для удаленного запуска требуется, чтобы вы создали токен для каждого задания, которое затем отправляется на задание. Поскольку этот токен относится к заданию, которое создает Jenkins, вам нужно будет добавить новую пару задание / токен для каждого задания, запущенного для каждого репозитория. Хотя это не пустая трата ресурсов для Jenkins или GitBlit, это тратит ваше время на поддержание этих пар.

Хук Дженкинса в GitBlit прост, и вы можете использовать его как глобально, так и для определенных репозиториев. Чтобы включить это, отредактируйте jenkins.groovy, найденный в ${appserver.base}/groovy, где $ {appserver.base} - это то место, где вы всегда устанавливаете это значение во время установки. Изменить def jenkinsUrl = gitblit.getString('groovy.jenkinsServer', 'http://your/jenkins/url') строка с URL вашего сервера Jenkins. Вы также можете просто установить groovy.jenkinsServer в своем файле gitblit.properties. Чтобы заставить все репозитории использовать этот скрипт-хук, добавьте его в строку groovy.postReceiveScripts в вашем файле gitblit.properties. В противном случае отредактируйте свой репозиторий в веб-приложении GitBlit и добавьте jenkins в его список подключений после получения.

Другие вопросы по тегам