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