Назад | Перейти на главную страницу

Я бы хотел, чтобы Дженкинс запускал сборку при загрузке или изменении набора патчей в Gerrit. Как именно мне это настроить?

Я использую Jenkins 1.557 для просмотра изменений в Gerrit 2.8. Я использую следующие плагины:

Когда я использую «тестовое соединение» для триггера Gerrit, он возвращает успех, поэтому я знаю, что учетные данные работают. Я использую значения по умолчанию для кнопки «Дополнительно».

Для моего типа тестовой сборки я использую репозиторий git, который проверяет Дженкинс (я добавил шаг пост-сборки «ls -l», и он правильно показывает содержимое репо). У меня есть триггер сборки, установленный на «событие gerrit», а для «триггера gerrit» выбран «Проверять не проверенные наборы исправлений» и активирован триггер для «Набор исправлений создан». Настройки проекта gerrit кажутся правильными.

Я не могу запустить сборку, загрузив новое изменение или новый набор исправлений для изменения. Когда я вручную запускаю сборку с помощью кнопки «Запросить и запустить исправления Gerrit», сборка выполняется, но голоса не записываются. Я явно упускаю часть головоломки - если я ssh в gerrit и сделаю "stream-events", я увижу события, которые ожидаю увидеть.

Дженкинс - исчерпывающий справочник - от О'Рейли на самом деле не охватывает Геррита. Я пытаюсь избежать опроса, потому что этим экземпляром Jenkins будут управлять десятки репозиториев git.

Какой следующий шаг в отладке?

В прошлом были некоторые изменения, которые сломали плагин:

  • Gerrit 2.8 удалил устаревшие approve команда, которая AFAIK сломала плагин, см. обсуждение и Примечания к выпуску. Это было исправлено в 2.11.0-beta1, так что я думаю, что это не относится к вам.

  • Gerrit 2.7 представил События потока привилегия, которая запрещает пользователи для получения потоковых событий по умолчанию, см. Примечания к выпуску. Скорее всего, у вашего пользователя Jenkins нет этой привилегии доступа, и поэтому никакие сборки не запускаются после нажатия изменения.