Как я могу запустить сборку определенных версий проекта с поддержкой Mercurial в Гудзоне?
Я планирую подключить Mercurial ChangeGroup, который запускает сборку в Hudson.
Проект добавляется в очередь, и Хадсон создает его, когда есть свободный слот. Проблема в том, что кто-то другой мог тем временем вставить код в проект, поэтому hudson создаст эту более новую ревизию (потому что она выполняет что-то вроде "hg pull -u && build"), а не ревизию, в которой был репозиторий, когда Первая сборка была запущена.
Есть ли решение этой проблемы? Может быть, с помощью параметризованных сборок? Если это не работает с одним заданием, может быть, я могу создать одно задание на push и настроить URL-адрес Mercurial для включения сегмента ревизии?
Спасибо за подсказки.
1 ответ
В вашей ловушке, предполагая, что это ловушка оболочки, вы должны получить идентификатор узла наконечника вашего репо и передать его в качестве аргумента API Хадсона (теперь Дженкинса). Получение этого значения будет выглядеть примерно так:
export NODE_TO_BUILD=$(hg --id --rev tip)
Затем вы передадите его в качестве параметра в API Hudson, используя любой формат, который вы вызываете: http://wiki.hudson-ci.org/display/HUDSON/Remote+access+API
и настроить работу Хадсон, чтобы быть:
hg pull && hg update $NODE_TO_BUILD && build