Мы заканчиваем настройку нашей новой системы CI, включая git, gerrit и jenkins для автоматического тестирования и проверки кода, и обнаруживаем странную ситуацию:
У нас есть три разных gerrit-проекта, в каждом из которых есть своя работа Дженкинса. Мы использовали это в качестве руководства по установке, и все установлено и, по-видимому, работает нормально.
Наш первый проект был настроен и протестирован с патчем изменения образца. Jenkins был запущен правильно, прошел тест и проголосовал за проверку сборки, как и ожидалось. Все идет нормально!
Но: когда мы попытались настроить второй проект, мы обнаружили, что патч изменения в одном из триггеров проектов изменился в каждом задании jenkins. Например:
Допустим, у нас есть GerritProjectA и GerritProjectB, каждый из которых имеет JenkinsProjectA и JenkinsProjectB. Когда изменение отправляется в GerritProjectA, запускаются как JenkinsProjectA, так и JenkinsProjectB. Также что-то путается в голосовании за gerrit после сборки: Вот информация в sshd_log после одной из сборок (одна в JenkinsProjectB):
gerrit approve 10,3 --message '\''Build Failed
http://jenkins-server:8080/job/projectA/6/ : FAILURE
http://jenkins-server:8080/job/projectB/59/ : Correcto'\!''\'' --
verified -2 --code-review 0' 14ms 6ms 1
Как видите, команда gerrit Approved перепутана с информацией для двух разных заданий jenkins...
Пример настройки для любой работы jenkins:
Repository URL: ssh://jenkins@gerrit-server:29418/projectA.git
Banches to build: $GERRIT_PATCHSET_REVISION
Build triggered by Gerrit event:
Project Type: Plain
Branches: Path **
Версии программного обеспечения:
Jenkins: 1.458
Gerrit plugin: 2.5.1
Gerrit: 2-3 rc0
Любые идеи? Заранее спасибо!
Доминго