У меня есть задание по сборке Jenkins с триггером Mercurial в ветке по умолчанию, которое отлично подходит для создания «релиз-кандидатов». Затем эта работа запускает задание по тестированию на дым.
Мы используем схему ветвления для каждой функции, чтобы в любой момент времени в Mercurial могло быть до десятка различных активных ветвей (но активные ветки меняются регулярно).
Мне бы хотелось, чтобы задание Jenkins запускалось изменениями в любой ветке, которая затем будет создавать и запускать дымовые тесты для всех веток, которые нуждаются в обновлении. Каждый раз, когда мы делаем сборку, мы должны создавать артефакты с именами, соответствующими ветке.
Я видел предложение в другом ответе об использовании «tip» вместо имени ветви в триггере Mercurial - это возможно, но я думаю, что оно попадет в категорию «в основном работает». Триггер опрашивает, поэтому, если в интервале опроса происходят изменения более чем одной ветви, обновление ветки может быть пропущено.
Я мог бы создавать новую работу каждый раз, когда создается филиал, но из-за динамического характера наших филиалов, это было бы много постоянной работы.