Как настроить Jenkins для сборки проекта из разных веток в Mercurial - PullRequest
12 голосов
/ 16 февраля 2012

У меня есть задание по сборке Jenkins с триггером Mercurial в ветке по умолчанию, которое отлично подходит для создания «релиз-кандидатов». Затем эта работа запускает задание по тестированию на дым.

Мы используем схему ветвления для каждой функции, чтобы в любой момент времени в Mercurial могло быть до десятка различных активных ветвей (но активные ветки меняются регулярно).

Мне бы хотелось, чтобы задание Jenkins запускалось изменениями в любой ветке, которая затем будет создавать и запускать дымовые тесты для всех веток, которые нуждаются в обновлении. Каждый раз, когда мы делаем сборку, мы должны создавать артефакты с именами, соответствующими ветке.

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

Я мог бы создавать новую работу каждый раз, когда создается филиал, но из-за динамического характера наших филиалов, это было бы много постоянной работы.

Ответы [ 2 ]

4 голосов
/ 05 сентября 2012

Если вы решите использовать задачу для каждого подхода , следующие инструменты могут сделать задачу более управляемой:

2 голосов
/ 16 февраля 2012

Я думаю, что вам нужно настроить: задание верхнего уровня (настроенное на подсказку) запускает собственный скрипт, который определяет ветви, которые были изменены или были добавлены. Затем он будет использовать Jenkins API для запуска задания, параметризованного именем ветви. Этот параметр можно использовать в вашей работе для настройки всего, что вам нужно, по имени ветви (включая артефакты).

...