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