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

Как я могу заставить Jenkins нажимать на репозиторий BitBucket git?

У меня есть репозиторий git, размещенный на BitBucket, и настроил аутентификацию SSH между репозиторием и моим сервером Jenkins. Я могу использовать Jenkins вручную, но не могу заставить службу Jenkins на BitBucket запускать сборки.

Jenkins configuration:  
- Project Name: [my_jenkins_job]  
- Build Triggers:  
--Trigger Builds Remotely:  
---Token: [token]

BitBucket configuration:  
- Endpoint: http://[my_jenkins_address]/job/[my_jenkins_job]/build (I've also tried build?token=[token])  
- Project Name: [my_jenkins_job]  
- Module Name: [blank]  
- Token: [token]

Посещение http:// {my_jenkins_address}/job/{my_jenkins_job}/build? token = {token} запускает сборку правильно.

Почему не нажимает изменения на BitBucket, чтобы заставить Jenkins инициировать сборку?

4b9b3361

Ответ 1

У меня есть экземпляр Jenkins, настроенный для опроса репозитория каждую минуту. Это недостаточно часто для ваших нужд?

Наша конфигурация Дженкинса:

Триггеры сборки > Опрос SCM = Проверено

Сборка триггеров > Опрос SCM > Расписание =

# every 1 minute
*/1 * * * *

Ответ 2

Из-за Jenkins Hook of Bitbucket для меня совсем не работает, и у меня разные проекты Jenkins для разных ветвей. Я пришел к этому решению:

  • Установите плагин Bitbucket на вашем Jenkins
  • Добавьте обычный почтовый ящик в свой репозиторий Bitbucket (Настройки → Крючки) и используйте следующий URL:

HTTPS://YOUR.JENKINS.SERVER: ПОРТ/BitBucket-крюк/

и если вы установили аутентификацию на jenkins, тогда URL должен выглядеть как

https://USERNAME: [email protected]: PORT/Bitbucket-крюк/

  • Настройте проект Jenkins следующим образом:
  • в build trigger включить Сборка, когда изменение будет перенесено в BitBucket
  • в Управление исходным кодом выберите GIT; введите свои учетные данные и определите Филиалы для создания (например, ** feature/*)

Таким образом, у меня есть три проекта сборки, один для всех функций, один для разработки и один для ветки релиза. Не забудьте включить косую черту ('/') в конце URL-адреса или крючок не будет работать.

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

Ответ 3

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

Если вы используете аутентификацию, вы можете получить маркер API от одного из пользователей, который может создавать сборки. Я создал отдельную учетную запись только для Bitbucket. Вам понадобится хотя бы Jenkins 1.426 для использования токена API. Затем вы можете использовать HTTP-аутентификацию с маркером API в качестве пароля для службы Bitbucket.

Вот как мой настроен:

Конечная точка: http://[битбакет]: [APITOKEN] @[www.example.com/jenkins/]

Название проекта: [NameOfMyJenkinsProject]

Имя модуля: [пусто]

Токен: [Токен, найденный в настройках проекта Jenkins]

После того, как я установил его таким образом, я смог использовать токен, а также аутентификацию, чтобы включить push-triggered сборки из Bitbucket.

Ответ 4

Использование токена бесполезно, если вы используете аутентификацию в Jenkins.

используйте плагин Git и используйте в нем POST-крючок с http[s]://your.site.com[/jenkins]/git/[email protected]:your-username/your-repo.git. Убедитесь, что опрос включен и запланирован с некоторым значением, или это не сработает.

Ответ 5

Использование Poll SCM - это хорошо, однако у него также есть несколько недостатков: он будет получать метаданные из вашего репозитория GIT, который в любом случае использует некоторый процент пропускной способности вашего сервера bitbucket и сервера Jenkins.

Лучше, чтобы Bitbucket знал, когда запускать Jenkins, если появилось какое-либо новое обновление. Если вы используете последние версии bitbucket, существует плагин "Stash webhooks for Jenkins", который теперь совместим с Bitbucket.

В этом плагине вам просто нужно указать URL-адрес Jenkins и имя JOB, это также обеспечивает дополнительный уровень безопасности между Jenkins и Bitbucket. enter image description here

Это плагин (веб-зацепки Stash для Jenkins, который не называется Bitbucket webhooks для Jenkins), который можно загрузить с Atlassian Marketplace.

enter image description here Выше приведены настройки надстроек, в которых необходимо указать URL-адрес Jenkins и URL-адрес повторного клонирования. С помощью триггера вы также можете проверить соединение и т.д.

Ссылка для плагина: Bitbucket webhooks for Jenkins

Как работает этот плагин:

  1. Установите плагин Git в Дженкинс. Настройте свой проект для использования Git для управления исходным кодом. Вам нужно будет сохранить URL репозитория, который вы используете для настройки в Stash. Включите опцию Опрос SCM в триггерах сборки. Это необходимо для удаленного запуска сборки. Поскольку нам не нужно опрашивать, вы можете установить частоту опроса очень редко. Сохраните конфигурацию вашего проекта.
  2. Введите URL-адрес вашего экземпляра Jenkins и URL-адрес репозитория, который вы настроили для использования Jenkins. Вы можете использовать раскрывающийся список, чтобы получить URL-адрес клона для каждого поддерживаемого протокола. После этого не стесняйтесь изменить его в соответствии с вашим экземпляром Jenkins.
  3. Это оно!

Теперь, когда настроены и Jenkins, и Stash, если вы фиксируете код, триггер сборки будет происходить автоматически. Что происходит, так это то, что хук post-receive запускает GET-запрос к Jenkins, который затем сообщает ему опросить хранилище (почему вам нужно включить опрос). Опрос проверяет, есть ли какие-либо изменения. Так как есть, он запускает сборку!

Ответ 6

Просто установите плагин bitbucket и следуйте инструкциям, которые можно найти на странице плагинов:

Настройте репозиторий BitBucket с помощью POST-крючка, используя URL-адрес JENKINS_URL/битбакет-крючок (нет необходимости в учетных данных). При каждой фиксации, все задания с надписью "Построить, когда изменение переместилось в битбакет" активируется.

Смотрите здесь: https://wiki.jenkins-ci.org/display/JENKINS/BitBucket+Plugin

Ответ 7

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

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

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

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

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

АДА