Обновление hg репозитория из Jenkins
Я новичок в CI но мне кажется, что задача обновления исходников перед сборкой является очень распространенной. Все манипуляции проводились на CentOS 6.
В моем случае требовалось обновить проект из удаленного mercurial-репозитория. В консоли это делается просто
hg pull -u
, будет запущен интерактивный режим и mercurial запросит у вас логин и пароль. Для jenkins интерактивный режим не подходит, т.е. логин и пароль mercurial должен получить из параметров вызова команды hg pull. Делается это так:
hg pull -u --config auth.username=alexey --config auth.password=kodfemnsi03
Для файлов локального репозитория необходимо установить пользователя и группу jenkins. Иначе вы получите ошибку примерно такого содержания:
Not trusting file /dev/.hg/hgrc from untrusted user root, group dev
Мне это показалось довольно странным, т.к. в в глобальных настройках mercurial все пользователи объявляются "доверенными". Выполнил в jenkins-задаче команду
hg showconfig --debug
и оказалось что глобальные настройки mercurial в jenkins не используются. Это пока не совсем понятное для меня поведение со стороны jenkins и mercurial.