У нас есть Jenkins, и у нас есть локальный Bitbucket Server.

Мы уже установили

  • "Плагин Bitbucket" на Дженкинс
  • "Post Webhooks" на Bitbucket

Затем мы устанавливаем в Дженкинс

  • Филиалы для строительства
    • Спецификатор ветвления к "**"

В Post Webhooks мы проверили все события.

Теперь, когда мы нажимаем ветку или удаляем запрос Pull, jenkins запускается и, кажется, строит каждую ветку, которая имеет новые коммиты. (Но почему-то это не срабатывает, когда мы создаем запрос на извлечение.)

Теперь вопрос: как мы можем получить результаты нашего теста в Bitbucket, чтобы заблокировать слияние при сбое теста?

Мы нашли плагин "Нарушения для Bitbucket Server", но он охватывает только результаты статического анализа кода, а не отчеты jUnit или surfire.

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

1 ответ1

1

Здесь есть три части:

  • Как вы запускаете сборку при создании PR? Для этого я использовал плагин "pull request notifier for bitbucket". Технически это вам не нужно, если вы используете плагин "Bitbucket Branch Source" (упомянутый ниже), но он обеспечивает хорошее улучшение качества жизни для пользователей Bitbucket Server.

  • Как Bitbucket узнает, когда сборка Jenkins не удалась? Здесь есть несколько вариантов. На мой взгляд, безусловно, лучший способ решить эту проблему - использовать официальный плагин CloudBees "Bitbucket Branch Source". Этот плагин позаботится о каждом аспекте настройки, который вам нужен на стороне Jenkins (если вы используете Bitbucket Cloud, он может даже позаботиться о конфигурации на стороне Bitbucket). Среди прочего, этот плагин автоматически обнаруживает репозитории, ветки и запросы на извлечение. Он также сообщает о результатах тестирования обратно в Bitbucket. Если вы не хотите использовать этот плагин по какой-либо причине, есть и другие решения, которые сработали и для меня, в частности плагин "Stash notifier". Этот плагин просто сообщает результаты теста обратно в Bitbucket, не более того.

  • Как вы предотвращаете слияние неудачных PR? Это можно решить с помощью настроек репозитория в Bitbucket. В частности, Настройки репозитория> Проверки слияния> Минимум успешных сборок. Если вы хотите применить это ко всем репозиториям в проекте, а не к одному репозиторию за раз, этот параметр также можно отрегулировать на уровне проекта в последних версиях Bitbucket (начиная с 5.5, IIRC - мне лень посмотрите список изменений прямо сейчас).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .