Плагин конструктора запросов на вытягивание Jenkins github не публикуется в github

Я настроил плагин Jenkins Github Pull-Request Builder для создания каждого запроса на вытягивание, сделанного членами моего учреждения. Работает как часы.

Тем не менее, сборка не сообщает о статусе сборки обратно в github, как это показано в этом прекрасном опубликовать. Я также попытался установить флажок «Использовать комментарии для сообщения о результатах при сбое обновления статуса фиксации», но все равно ничего не получаю на github.

Я создал пользователя-бота на GitHub и дал ему права на нажатие и административные права на репо.

Мой сервер Jenkins находится за брандмауэром, но, поскольку он нормально строится и обнаруживает изменения (путем опроса) в репозитории github, я предполагаю, что это не проблема.

У кого-нибудь еще была эта проблема? Как вы это решили?

Вот дамп моего консольного вывода (сжатый для удобства чтения)

Started by an SCM change
Building in workspace 
Fetching changes from the remote Git repository
Fetching upstream changes from repo
Seen branch in repository origin/HEAD
Seen branch in repository origin/master
Seen branch in repository origin/pr/1/head
Seen branch in repository origin/pr/1/merge
Seen branch in repository origin/pr/10/head
[…]
Seen branch in repository origin/pr/9/head
Seen branch in repository origin/pr/9/merge
Seen 33 remote branches
Checking out Revision 9b4d45ee3a2d265a1268c2931e7b2bcb738e1c87 (origin/pr/16/merge)
First time build. Skipping changelog.
...found 160 targets...
...updating 21 targets...
**passed** test/bin/test.test/gcc-4.8.1/debug/test.test
[xUnit] [INFO] - Starting to record.
[xUnit] [INFO] - Processing BoostTest-1.x (default)
[xUnit] [INFO] - Check 'Failed Tests' threshold.
[xUnit] [INFO] - Check 'Skipped Tests' threshold.
[xUnit] [INFO] - Setting the build status to SUCCESS
[xUnit] [INFO] - Stopping recording.
Finished: SUCCESS

person Carneiro    schedule 22.11.2013    source источник


Ответы (1)


Посмотрев Jenkins LOGS, я узнал несколько вещей:

  1. Этот плагин (сборщик пулл-реквестов на github) полностью заменяет все остальные билд-триггеры (включая git и опрос SCM). Я использовал все три, и когда я думал, что этот плагин работает, потому что он собирался правильно, на самом деле это были другие триггеры.
  2. Вы должны указать URL-адрес вашего проекта на github в подключаемом модуле github. Этот плагин зависит от плагина github для работы. Это то, что мешало ему работать в моей конфигурации.

После того, как вы исправите № 2, вы можете удалить триггеры из SCM Poll и Git, чтобы убедиться, что плагин запроса на вытягивание запускает сборку. Когда это происходит, он фактически добавляет ссылку на запрос на включение в ленту активности в Jenkins (очень приятно) и корректно обновляет статус на github.

person Carneiro    schedule 22.11.2013
comment
У меня та же проблема, но я не уверен, что вы имеете в виду: вы должны установить URL-адрес своего проекта github в плагине github. - это на странице конфигурации задания? У меня есть URL-адрес github и URL-адрес репозитория, установленные в конфигурации задания. У меня также есть построитель запросов на вытягивание GitHub в качестве одиночного триггера сборки, но все еще есть та же проблема. Глядя на журналы jenkins, я вижу, что проблема в следующем: не удалось обновить статус фиксации запроса на вытягивание на GitHub. java.io.FileNotFoundException: api.github.com/repos/XXX/YYY/ статусы/SHA - person Israel Roth; 03.04.2014
comment
что еще есть в ваших логах? Я никогда не получал эту ошибку, но журналы могут помочь определить, что не так в вашем случае. Похоже на проблему аутентификации, может быть? - person Carneiro; 04.04.2014
comment
проблема исправлена. проблема заключалась в том, что в настройках Jenkins я использовал токен доступа, но токен доступа был сгенерирован для пользователя, который был удален из владельцев репозитория, поэтому больше не имел права комментировать. Если вы столкнулись с подобной ошибкой, следуйте инструкциям по созданию токена доступа здесь: wiki.jenkins-ci.org/display/JENKINS/ ПРИМЕЧАНИЕ. Мне пришлось перезапустить Jenkins, чтобы это сработало против гутхаба с новым токеном доступа. - person Israel Roth; 06.04.2014
comment
Вы случайно не знаете, была ли переменная $sha1 установлена ​​для коммита, сгенерировавшего запрос на включение? Хотя в документах говорится об использовании этой переменной, я обнаружил, что она не установлена ​​(и опубликовал еще один вопрос об этом). - person John C; 22.04.2014
comment
Я этого не знаю, извините - person Carneiro; 23.04.2014
comment
@IsraelRoth Я обнаружил, что должен использовать SHA1, а не ${sha1} в качестве спецификатора ветки. Также перезагрузите jenkins после установки плагина! - person Mosselman; 26.05.2014
comment
Спасибо, это было очень полезно! - person thescientist; 02.06.2015