Как я могу заставить 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 инициировать сборку?
Ответы
Ответ 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.
Выше приведены настройки надстроек, в которых необходимо указать URL-адрес Jenkins и URL-адрес повторного клонирования. С помощью триггера вы также можете проверить соединение и т.д.
Ссылка для плагина: Bitbucket webhooks for Jenkins
Как работает этот плагин:
- Установите плагин Git в Дженкинс. Настройте свой проект для использования Git для управления исходным кодом. Вам нужно будет сохранить URL репозитория, который вы используете для настройки в Stash. Включите опцию Опрос SCM в триггерах сборки. Это необходимо для удаленного запуска сборки. Поскольку нам не нужно опрашивать, вы можете установить частоту опроса очень редко. Сохраните конфигурацию вашего проекта.
- Введите URL-адрес вашего экземпляра Jenkins и URL-адрес репозитория, который вы настроили для использования Jenkins. Вы можете использовать раскрывающийся список, чтобы получить URL-адрес клона для каждого поддерживаемого протокола. После этого не стесняйтесь изменить его в соответствии с вашим экземпляром Jenkins.
- Это оно!
Теперь, когда настроены и 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
И я работаю для всех трубопроводов, даже многоотраслевых.
Надеюсь, это поможет кому-то;)
АДА