Здесь есть три части:
Как вы запускаете сборку при создании 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 - мне лень посмотрите список изменений прямо сейчас).