Триггер Дженкинса Геррита не загружает мои изменения во время сборки

Я настроил jenkins с плагином триггера Gerrit для проверки каждого коммита, который мы выдвигаем к Gerrit. Я ожидаю, что этот триггер включит мое последнее изменение в исходное репо и сделает сборку. Но это клонирование только репо проекта и компиляция без моего изменения.

Ниже приведены мои настройки конфигурации для запуска Gerrit в Дженкинс.

Refspec: $GERRIT_REFSPEC 
Branches to build: $GERRIT_BRANCH 
Build trigger: Gerrit event 
Trigger on: patch set created 
Gerrit project: added project and branch

Ниже приведено сообщение о выходе сборки

Triggered by Gerrit: http://ci-test1/22
Building on master in workspace /var/lib/jenkins/jobs/Build_Adserver_4.7/workspace
Checkout:workspace / /var/lib/jenkins/jobs/Build_Adserver_4.7/workspace - hudson.remoting.LocalChannel@733aee56
Using strategy: Default
Last Built Revision: Revision 701a75ef38aa191ac1b806c48e6b3451671888f6 (ads/4.7)
Fetching changes from 1 remote Git repository
Fetching upstream changes from abc
Commencing build of Revision 701a75ef38aa191ac1b806c48e6b3451671888f6 (ads/4.7)
Checking out Revision 701a75ef38aa191ac1b806c48e6b3451671888f6 (ads/4.7)
[workspace] $ /bin/sh -xe /tmp/hudson1375188638196718521.sh
+ echo 'Started Build'
Started Build
+ echo ..................
..................
+ echo 'Build Finished'
Build Finished
Finished: SUCCESS

Здесь 701a75ef38aa191ac1b806c48e6b3451671888f6 является HEAD ветви репо, а 8cbda558adcad4fb7eb714e0b3fb98a6fbf5811c является SHA-идентификатором моего последнего изменения, инициировавшего сборку.

Я также проверил из рабочего пространства jenkins, оно не включает мои изменения.

извините, если мне не хватает какой-либо информации, чтобы упомянуть. Пожалуйста, дайте мне знать, пожалуйста, помогите мне, если я что-то упустил здесь.

3 ответа

Решение

Вы должны изменить Choosing Strategy в Gerrit Trigger

Перейдите на страницу конфигурации вашей работы, а затем нажмите на 2-й Advanced кнопка под git раздел. Почти внизу есть Choosing Strategy что вам нужно будет изменить на Gerrit Trigger

Это заставит Git выбрать правильную версию для вашей сборки

Использование Jenkins 1.532.2 Git Client Plugin 1.6.2 Git Plugin 2.0.1 Git Trigger 2.11.0

Вот шаги по настройке триггера Gerrit (из памяти, надеюсь, все работает нормально):

  1. Установите плагин (ы) "Gerrit Trigger", "Git Plugin" и "Git Client Plugin"
  2. В главном конфиге jenkins (HOME->Manage Jenkins) нажмите Gerrit Trigger.
  3. Создайте сервер и настройте его. Используйте "Test Connection", чтобы убедиться, что оно работает.
  4. В конце под "Control" нажмите "start" (понятия не имею, что это делает или нужно, но я это сделал).
  5. Перейдите в конфигурацию вашего проекта (MYPROJECT->Configure)
  6. Проверьте "Событие Геррита" в разделе "Построение триггеров"
  7. В новом добавленном меню выберите свой сервер, триггеры и т. Д.
  8. Для проекта Gerrit я использовал "Обычный" с "MYPROJECT" в качестве шаблона
  9. Для Branch я использовал "Path" и "**" в качестве шаблона (строит все ветви)
  10. В разделе "Управление исходным кодом" (по сравнению с триггерами в моем пользовательском интерфейсе) нажмите "Git".
  11. Задайте URL репозитория, здесь мне подходит $USER, но в противном случае напишите правильного пользователя $GERRIT_SCHEME://$USER@$GERRIT_HOST:$GERRIT_PORT/$GERRIT_PROJECT
  12. Укажите ветку: $GERRIT_BRANCH
  13. В разделе "Репозитории" справа нажмите "Дополнительно", для "Refspec" введите $GERRIT_REFSPEC
  14. Нажмите кнопку "Добавить" справа внизу и выберите "Стратегия выбора строения".
  15. Выберите "Триггер Геррит"

Не очень интуитивно понятно, но это должно работать. Я предлагаю убедиться, что правильные идентификаторы SHA1 создаются.

Если столкнулся с ошибкой stderr: fatal: не удалось найти удаленный ref $GERRIT_REFSPEC

Исправляя небольшие проблемы в ответе Льюиса, измените значения на следующие, чтобы убедиться, что построена последняя версия SHA1.

branch: $GERRIT_REFSPEC

REFSPEC: $GERRIT_REFSPEC:$GERRIT_REFSPEC

Я использую Jenkins 2.15, столкнулся с проблемой и получил разрешение со следующими настройками. В Git Advances добавьте Refspec: $GERRIT_REFSPEC Ветви для сборки: $GERRIT_BRANCH.

В разделе "Аддитивное поведение" выберите "Стратегия выбора строения" и выберите "Gerrit Trigger".

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