Настройка нескольких ртутных репозиториев в Jenkins - PullRequest
6 голосов
/ 18 октября 2011

Мы используем около 30 репо для обработки всего нашего программного обеспечения в нашей компании.Наш код смешан между C #, C ++ и python.Изначально мы собирались использовать TeamCity для нашего CI-сервера, и я обнаружил, что его чрезвычайно легко настроить в соответствии с нашей системой репо.Однако мой менеджер решил, что мы должны использовать Jenkins вместо этого.

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

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

Наша конечная цель состоит в том, чтобы Jenkins также выполнял наши развертывания в нашей области разработки.Это оказалось легко сделать в TeamCity, и я думаю, что это должно быть так же легко сделать и в Дженкинсе.Может ли работа получить доступ к репозиториям с других рабочих мест?Я не уверен, что это понятно, но в команде команды были переменные проекта, которые могли бы позволить вам выбрать любое репо, которое вы определили (например, %FIRST_REPO%, %SECOND_REPO%)

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

Я надеюсь, что кто-то с большим опытом работы с КИ, чем я, может помочь.Возможно, для нашей установки лучше подойдет другой CI-сервер, у кого-нибудь есть опыт работы с BuildBot?


Я подумал, что было бы полезно перечислить расположение репозиториев:

  • app1.application
  • app1.common
  • app1.deploy
  • app2.application
  • app2.common
  • app2.deploy
  • platform.common
  • platform.deploy

Где app1 и app2 будут зависеть от некоторых ресурсов из platform.common.

Ответы [ 2 ]

3 голосов
/ 02 декабря 2011

Ну, ответ так и не был определен. Нашим решением было переключиться на TeamCity , что позволило нам сделать это довольно легко. Агенты сборки в Team City могут перемещать репозитории в разные каталоги, если вы укажете их для этого. Оттуда репозитории могут обращаться к зависимостям друг от друга, используя относительные пути.

Надеюсь, это кому-нибудь поможет. Возможно, еще есть способ сделать это в Дженкинсе, но мы не смогли найти прямой путь.

0 голосов
/ 04 января 2014

Начиная с текущей версии Jenkins и плагина Mercurial, он не поддерживает извлечение из нескольких репо.

Однако вы можете сделать это, связав задания, по одному заданию на каждое извлечение и разместив их в рабочем пространстве.

...