Как я могу запустить сборку определенных версий проекта с поддержкой Mercurial в Гудзоне? - PullRequest
1 голос
/ 21 марта 2011

Я планирую подключить mercurial changegroup, который запускает сборку в hudson.

Проект добавляется в очередь, а hudson создает его, когда есть свободный слот.Проблема в том, что кто-то другой мог тем временем вставить код в проект, поэтому hudson создаст эту более новую ревизию (потому что она выполняет что-то вроде "hg pull -u && build"), а не ревизиюхранилище было в момент, когда была запущена первая сборка.

Есть ли какое-либо решение для этой проблемы?Может быть, с помощью параметризованных сборок?Если это не работает с одним заданием, может быть, я могу создать одно задание на push и настроить URL-адрес Mercurial для включения сегмента ревизии?

Спасибо за подсказки.

1 Ответ

1 голос
/ 21 марта 2011

В вашей ловушке, предполагая, что это ловушка оболочки, вы должны получить идентификатор узла наконечника вашего репо и передать его в качестве аргумента 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
...