BitBucket Jenkins не создает автоматически

На моих Jenkins я сконфигурировал:

Управление исходным кодом

Git репозиторий: https://bitbucket.org/username/project.git

учетные данные: имя пользователя/пароль

Триггеры Builder

Создайте, когда изменение переместится в BitBucket

На моих веб-узлах BitBucket:

http://Jenkins.URL:8080/bitbucket-hook

Я попытался сделать небольшое изменение в TXT файле, но Jenken не создается автоматически. Если я вручную нажму "build now", это покажет успех.

В чем может быть проблема?

В репозитории bitbucket проект прост. У меня просто есть текстовый файл для тестирования. Я думаю, что до тех пор, пока я внес изменения в текстовый файл, он должен вызвать сборку Jenkins.

Edit:

В системном журнале Jenkins показано, что "Опрос еще не запущен". Но в журнале запросов Bitbucket Webhook я могу видеть все запросы.

Ответ 1

Как отметил @Adrian, вам все равно нужно выбрать "Poll SCM". Это немного неинтуитивно, но когда веб-хост BitBucket отправляет запрос Дженкинсу, Дженкинс будет опросить изменения на всех работах, ссылающихся на репозиторий BitBucket, где было сделано изменение. Вы можете установить длительный интервал времени для опроса, например. @monthly, поскольку вам не нужно планировать Дженкинса для запуска опроса; веб-крючок позаботится об этом, как только будет сделано изменение.

Ответ 2

Вам не нужно включать Polling SCM..

Вы должны убедиться, что ваш Webhook (Settings- > Webhooks) указывает на ваш Jenkins bitbucket-hook следующим образом: " https://ci.yourorg.com/bitbucket-hook/".

Обратите внимание, что последний "/", без него, сборка не будет запущена.

Это раздражает, так как вы получите код статуса 200 от Jenkins при отправке запросов с или без него.

Ответ 3

Используя Jenkins 2.53 и плагин Bitbucket 1.1.5, мне пришлось вручную запустить сборку, чтобы заставить webhook работать.

Что мне подсказывала эта строка из документация:

Если задание SCM (git) определяет, что удаленный репозиторий имеет изменения, THEN

После этого webhook отлично работает.

Ответ 4

После некоторой борьбы с плагином BitBucket мне удалось заставить его работать. Ниже приводится краткое описание того, что я нашел необходимым для запуска сборок, но это не очевидно из документации плагина:

  1. Убедитесь, что в вашем webhook включен repository push триггер repository push. Я думал, что pull request created/updated pull request created будет достаточен (то, что я хотел, опираясь на PR), но плагин реагирует только на push.
  2. Установите URL своего хранилища (в плагине Git) на https://bitbucket.org/REPOSITORY_OWNER/REPOSITORY_NAME. Плагин не будет соответствовать ему, если это SSH URL.
  3. Вы действительно нуждаетесь в SCM опрос включен. Сам плагин не тянет изменения. Вы можете оставить поле расписания пустым, поэтому репозиторий опрашивается только тогда, когда плагин запускает его.

Надеюсь, это поможет. Если сборка еще не запущена, попробуйте включить журналы для следующих классов:

  • com.cloudbees.jenkins.plugins.BitbucketHookReceiver
  • com.cloudbees.jenkins.plugins.BitBucketTrigger
  • com.cloudbees.jenkins.plugins.BitbucketJobProbe
  • com.cloudbees.jenkins.plugins.BitbucketPayloadProcessor
  • com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSource

Ответ 5

Вы отметили флажок, в котором говорится: Опрос SCM? Также убедитесь, что вы планируете короткое время, чтобы как можно скорее обнаружить изменения в репозитории.

Возможно, ваша проблема в том, что вы планируете в течение долгого времени, и после вашего толчка Дженкинс ждет некоторое время, чтобы обнаружить изменения.

Ответ 6

  1. Перейдите на страницу своих проектов на https://bitbucket.org
  2. Настройки → Веб-крючок → Нажмите "Добавить веб-крючок"
  3. Добавьте https://yourjenkinsserver.com/bitbucket-hook/
  4. Нажмите еще раз

Для этого у вашего Jenkisserver должен быть плагин bitbucket. Проверьте это, перейдя по адресу https://yourjenkinsserver.com/bitbucket-hook/ - он потерпит крах, но вы будете знать, что установили его.

Ответ 7

Я делаю то же самое, но без Bitbucket Plugin в моих Jenkins.

Я использую Jenkins Plugin в моем Bitbucket. Я настроил webhook в каждом репозитории и указал просто URL-адрес Jenkins. Затем в каждое задание, которое мне нужно, просто оставьте флажок "Опрос SCM" с/без расписания (не требуется).

С этим работает очень хорошо, и я избегаю установки другого плагина в своих Jenkins.

Ответ 8

Вы должны обратить внимание на Поле спецификатора ветвей и укажите ветку, в которой вы нажимаете.

Плагин Jenkins для Bitbucket не запускает работу, если изменений не обнаружено. вы можете добавить более одной ветки для просмотра.

как указано только в официальной документации. Если задание SCM (git) определяет, что удаленный репозиторий имеет изменения, то он будет вызывать сборку.

Итак, если вы оставите спецификатор ветки с его значением по умолчанию */master и вы переходите к другой ветке, то задание не будет выполнено.

Ответ 9

У меня была та же проблема на Jenkins 2.138.1 с плагином Bitbucket, и проблема была в том, что мне пришлось включить "Управление исходным кодом" → git, в противном случае он ничего не будет делать, хотя webhook появился в журнале Jenkins (/var/log/Jenkins/jenkins.log).

Ответ 10

Для кого-то вроде меня, новичка в jenkins и CI\CD:


Мы должны добавить webhook индивидуально для каждого репозитория, который мы хотим построить автоматически.

Я пытался создать проект и добавил jenkins url в качестве webhook в другой проект, и по ошибке подумал, что webhook универсален для всех проектов под учетной записью bitbucket. Но это не так. Хорошая мелочь, которую иногда легко не заметить.

Кроме того, я использовал опцию: Build when a change is pushed to BitBucket, а не Poll SCM, другие ответы предполагали, что мы должны использовать это, но опция Build when a change is pushed to BitBucket работала для меня.

Ответ 11

У меня также была эта проблема, которая была решена путем обновления плагина bitbucket в jenkins:

enter image description here

Также убедитесь, что URL-адрес webhook имеет правильный формат и в конце находится символ '/':

{} JenkinsURL/BitBucket-крюк/

Ответ 12

В моем случае это было решено путем установки параметров ветвления (расширенной конфигурации) Bitbucket на Jenkins Webhook на "Build All".

Ответ 13

Я долго боролся с этой проблемой и не смог найти решение в документации Jenkins, я нашел здесь решение на сайте поддержки Cloudbees.

Вам просто нужно добавить эти буксирные веб-хуки в репозиторий Bitbucket:

https://JENKIN_URL/bitbucket-scmsource-hook/notify
https://JENKIN_URL/bitbucket-hook

И я работаю для всех трубопроводов, даже многоотраслевых.

Надеюсь, это поможет кому-то;)

АДА