Подтвердить что ты не робот

Jenkins-Build, когда изменение переносится на вариант GitHub, не работает

Дженкинс работает на локальном хосте. У меня есть мой репозиторий в GitHub. У меня есть опция "Создать, когда изменения будут перенесены на GitHub".

Когда я нажимаю "Build Now", сборка выполняется успешно, никаких проблем нет. Но когда я делаю код в моем репозитории, автосоздания не происходит. Я могу получить доступ к GitHub из своей системы, поскольку хранилище является общедоступным, и я считаю, что даже Дженкинс должен его обнаружить. Я знаю, что есть опция опроса, но я хочу, чтобы Дженкинс строил, когда изменения обнаружены в репозитории (как этого мы и пытались достичь).

Конфигурация:

Дженкинс 1.615

Git Плагин 2.3.5

Git Клиентский плагин 1.17.1

--------------------------------------------р >

РЕДАКТИРОВАТЬ: "Построить, когда изменение перенесено на GitHub" было переименовано в "Триггер запуска GitHub для опроса GITScm" в последней версии плагина GitHub. (благодаря обратной связи @smrubin.)

4b9b3361

Ответ 1

Я подозреваю, что вы пропустили webhook url.

Помимо проверки опции Build when a change is pushed to GitHub, вы также должны добавить URL-адрес webhook в репозиторий Github, чтобы получить механизм Автоматический триггер, и вот как это сделать:

Перейдите в репозиторий Github:

Настройки → Webhooks & Services → Сервис → Добавить сервисы → Выберите "Jenkins (GitHub plugin)"

Затем введите Jenkins hook url своим URL-адресом jenkins следующим образом: http://your_jenkins_url/github-webhook/ введите описание изображения здесь


И, ОЧЕНЬ ВАЖНО, так как вы устанавливаете свой сервер jenkins в своем локальном хосте, помните, что вы не должны заполнять выше Jenkins hook url like http://localhost:8080/github-webhook/ потому что Github не может распознать localhost или 127.0.0.1 или 192.168.*.*.

Либо вы должны использовать внешнее имя DNS или IP-адрес, который может быть распознан Github.

Ответ 2

У меня была такая же проблема, и я решил ее. Проблема заключалась в том, что URL должен заканчиваться /. Значение:

http://<jenkinsurl>:8080/github-webhook/

http://<jenkinsurl>:8080/github-webhook

(Обратите внимание на отсутствующий / в конце.)

Ответ 3

На самом деле, если вы выполняете настройки webhook из Jenkins -> Github plugin configuration (упомянутый выше), вы все равно увидите создание webhooks в github. Таким образом, выше двух подходов в основном делается то же самое.

Мне лично нравится создавать webhook от Github, потому что вам не нужно делиться или хранить информацию о пользователе github в jenkins.

Шаги:

  • Вход в Github (с администратором)

  • Перейдите в репозиторий, который вы хотите подключить с помощью jenkins

  • Перейдите на вкладку настроек → веб-камеры и службы
  • Нажмите "Добавить веб-хостинг".
  • Введите URL-адрес полезной нагрузки: например: http://: 8080/github-webhook/
  • Выберите тип содержимого как json.
  • все готово.

Теперь вы делаете изменения и совершаете, вы увидите, что сборка jenkins автоматически запускается. Не забудьте сделать настройки в заданиях jenkins, чтобы начать сборку, когда код push в github.

Ответ 4

Плагин GitHub (https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin) упомянул два способа: ручной режим и автоматический режим. mainframer дает ответ на ручной режим. Сегодня я нашел что-то новое. mainframer add to the service не позволяет добавить несколько экземпляров Jenkins, поэтому я добавляю других, добавляя Webhook, как показано ниже. Он также отлично работает.

Я хотел включить изображение здесь, но мой идентификатор не имеет на это права.