Как я могу заставить Jenkins только создавать ветки функций, если они изменились при запуске с битбакета

У меня есть работа Jenkins, которая строит ветки, которые соответствуют "origin/feature/**".

Bitbucket запускает задание для создания всякий раз, когда в репозиторий происходят изменения через крюк репозитория (https://confluence.atlassian.com/display/BITBUCKET/Jenkins+hook+management).

Это отлично работает, когда есть изменения в ветки функции, задание распознает, что ветвь изменила и построила его.

Однако, когда есть фиксация для не-функциональной ветки (например, слияние для разработки или освоения), битбакет все еще запускает задание. Никаких изменений в каких-либо ветвях функций нет, поэтому он снова строит последнюю встроенную ветвь.

Есть ли способ контролировать это?

Ответ 1

После некоторого исследования я наконец нашел хорошее решение:

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

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

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

Таким образом у меня есть три проекта сборки, один для всех функций, один для разработки и один для ветки релиза.

Ответ 2

Ответ был в разделе комментариев, к которому вы привязались. Bitbucket всегда будет ссылаться на вашу работу.

Вам нужен прокси-сервер перед Дженкинсом для ветки сообщений.

https://github.com/oveddan/gitBuildForwarder

Если это SVN, я расскажу вам, как изменить привязку SVN, чтобы только выборочно запускать крючок на основе фильтрации Regex.