Несколько зависимых проектов в инструментах непрерывной интеграции - PullRequest
3 голосов
/ 02 октября 2009

Как настроить сервер непрерывной интеграции для создания нескольких зависимых проектов?

Я хочу настроить процесс непрерывной интеграции для проекта, размещенного в ртутном хранилище. Однако проект зависит от времени компиляции другого проекта, размещенного в другом хранилище Mercurial (оба размещены в Google).

Используя Hudson, как я могу настроить задание CI для обоих проектов (при передаче двоичных местоположений одного в другой скрипт сборки проекта)? Другие инструменты справляются с этим лучше?

Оба проекта являются проектами Java со сценариями сборки Ant.

Ответы [ 3 ]

5 голосов
/ 02 октября 2009

Я бы посоветовал заглянуть в Maven (или, если вы не хотите переходить на Maven, Ivy, который интегрируется с Ant) - это не совсем работа сервера CI по обработке зависимостей артефактов, о которых вы говорите.

Тем не менее, если у вас есть два задания на сервере Hudson, скажем, job_a и job_b, вы можете настроить job_a для архивации его артефактов (включая файлы jar, которые вам нужны в job_b), а затем запустить job_b, когда это заканчивается. И затем, внутри job_b, вы можете использовать муравьиную задачу get для загрузки файла (ов) jar из http://hudsonserver/job/job_a/lastStableBuild/artifact/jarfile.jar (и т. Д.). В этом месте всегда будет что-то, так как это символическая ссылка на последнюю стабильную сборку job_a, так что вам не нужно беспокоиться о запуске job_b и об отсутствии нужного jar-файла.

4 голосов
/ 02 октября 2009

Хадсон должен быть в состоянии справиться с этим, так как Хадсон поддерживает обе зависимые сборки (другими словами, сборка может быть запущена после завершения другой сборки) и Mercurial .

Согласно этой теме возможно:

Настройте Hudson на публикацию артефактов сборки, а затем HTTP получит эти артефакты в зависимую сборку. Вы хотите, чтобы местоположение вашей зависимой сборки было независимым от местоположения первой сборки.

Автор сообщения дает немного больше подробностей в Hudson Unleashed ... , что также может помочь.

0 голосов
/ 02 октября 2009

В круиз-контроле у ​​вас есть очереди интеграции. Вы просто помещаете оба проекта в одну и ту же очередь в нужном вам порядке, и они будут строить один за другим.

...