У меня есть следующая проблема:
Мой CI Pipeline работает на Jenkins (2.157) с использованием Git Plugin (3.9.1).
Настроено, что любое изменение с нашего размещенного Bitbucket Server (5.9.1) вызывает сборку.
Уведомление о подтверждении отправляется через Bitbucket HTTP-запрос Hook
Пока это работает, если ветвь функции не удалена.
При удалении ветки запускается сборка с идентификатором Git Commit "0000000000000000000000000000000000000000"
Если я не справлюсь с этим, сборка завершится неудачей (неудивительно).
Тем не менее, процесс уведомления все еще работает, и следующий коммит в хранилище снова запускает задание.
Что мне сейчас не нравится, так это то, что в моей истории есть неудачные сборки, которые на самом деле не ошибочны.
Поэтому я попытался отфильтровать уведомления о фиксации с идентификатором фиксации «0000000000000000000000000000000000000000», пометить их как «УДАЛЕНИЕ ФИЛИАЛА» и установить статус
currentBuild.result = 'SUCCESS'
Пока все хорошо. Теперь проблема в том, что задание CI больше никогда не запускается.
Рабочая область по-прежнему содержит содержимое предыдущего коммита, и я не могу понять, почему уведомление о фиксации больше не перехватывается.
Автоматический запуск сборки, после чего снова включается процесс уведомления.
Может кто-нибудь помочь или хотя бы объяснить, что здесь не так?
Подключаемый модуль HTTP-запроса Bitbucket не имеет возможности «игнорировать» удаление ветки (я создал для этого Issue в 2017 году, но он не был реализован)
UPDATE
Немного поиграв, я обнаружил, что только одно из следующего деактивирует процесс уведомления:
currentBuild.result = 'SUCCESS'
currentBuild.result = 'UNSTABLE'
При установке состояния на одно из следующих действий процесс уведомления все еще работает:
currentBuild.result = 'ABORTED'
currentBuild.result = 'FAILED'
ОБНОВЛЕНИЕ 2
Другим возможным решением является использование многоотраслевых конвейеров Jenkins - они не реагируют на удаление веток (кроме удаления рабочей области удаленной ветки)