Jenkins gerrit не меняет мои изменения при построении

Я настроил jenkins с помощью gertrit trigger plugin, чтобы проверить каждую фиксацию, которую мы нажимаем на gerrit. Я ожидаю, что этот триггер включит мое последнее изменение с оригинальным репо и создаст сборку. Но он клонирует только проект репо и компиляцию без моего изменения.

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

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 - [email protected]
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 - ГОЛОВКА ветки репо, а 8cbda558adcad4fb7eb714e0b3fb98a6fbf5811c - это SHA-идентификатор моего последнего изменения, запустившего сборку.

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

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

Ответ 1

Вам нужно изменить Choosing Strategy на Gerrit Trigger

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

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

Ответ 2

Использование Jenkins 1.532.2 Git Клиентский плагин 1.6.2 Git Плагин 2.0.1 Git Триггер 2.11.0

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

  • Установите плагин "Gerrit Trigger", "Git Plugin" и "Git Client Plugin"
  • В основной конфигурации jenkins (HOME- > Manage Jenkins) нажмите "Запуск Gerrit".
  • Создайте сервер и настройте его. Используйте "Test Connection", чтобы убедиться, что он работает.
  • В конце под "Control" нажмите "start" (не знаю, что это делает или если это действительно необходимо, но я это сделал).
  • Перейдите в конфигурацию проекта (MYPROJECT- > Configure)
  • Отметьте "Событие Gerrit" в разделе "Build Triggers"
  • В новом меню выберите сервер, триггеры и т.д.
  • Для проекта Gerrit я использовал "Plain" с "MYPROJECT" как шаблон
  • Для ветки я использовал "Путь" и "**" в качестве шаблона (строит все ветки)
  • В разделе "Управление исходным кодом" (начиная с триггеров в моем пользовательском интерфейсе) нажмите "Git"
  • Задайте URL-адрес репозитория, вот для меня $USER, но в противном случае напишите правильный пользователь $GERRIT_SCHEME://$USER @$GERRIT_HOST: $GERRIT_PORT/$GERRIT_PROJECT
  • Укажите ветку: $GERRIT_BRANCH
  • В разделе "Хранилища" справа нажмите "Дополнительно", для "Refspec" введите $GERRIT_REFSPEC
  • Нажмите "Добавить" прямо ниже и выберите "Стратегия выбора того, что нужно строить"
  • Выберите "Gerrit Trigger"

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

При запуске Ошибка stderr: fatal: Не удалось найти удаленный ref $GERRIT_REFSPEC

введите описание изображения здесь

Ответ 3

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

branch: $GERRIT_REFSPEC

REFSPEC: $GERRIT_REFSPEC:$GERRIT_REFSPEC