Хадсон CI & Project зависимости - PullRequest
       0

Хадсон CI & Project зависимости

0 голосов
/ 22 октября 2010

Может ли инструмент Hudson CI решать зависимости проекта, кроме тривиальных?Например, как я могу настроить сценарий, в котором есть два независимых модуля (A, B) и модуль C, зависящий от A и B?

На мой взгляд, нет никакого способа:

  • «Построить другой проект» не гарантирует, что A, B будут построены до C
  • «Построить после того, как другие проекты будут построены», только гарантия «C» запускается после A или B »(A и B необходимы)
  • Плагин Join может решить эту проблему, если у вас есть ~ 3 модуля.Если есть модули A1, ....., A100 и C1, ....., C100, то предполагается написать 100 дополнительных триггеров соединения и выполнить 100 дополнительных перестроений B (иными словами, каждая обратная зависимость каждого B требуетперестроить из б).Таким образом, в случае, если триггеры Join не могут быть тривиально взломаны XML, и бессмысленные перестройки неизмененного B не могут быть пропущены (возможно ли это?), Это нецелесообразно.это?

Ответы [ 3 ]

0 голосов
/ 22 октября 2010

Возможно, вы можете попробовать использовать плагин Ivy , который использует Apache Ivy для управления зависимостями.

0 голосов
/ 01 ноября 2010

Я предполагаю, что это не важно, если ваша сборка не происходит сразу. Таким образом, вы можете изменить расписание для проверки вашего SCM. Допустим, А будет запускать проверку SCM ежедневно в полночь. Затем настройте B для ежедневной проверки в 2 часа ночи (в зависимости от времени сборки для A) и C через 2 часа. Поскольку у вас будут артефакты для A и B, C будет работать нормально. Для вновь созданных заданий у вас также будут артефакты, так как вам нужно протестировать свою конфигурацию, вы просто запускаете первую сборку вручную.

Если это не вариант, вы всегда можете собрать все 3 из них. Это означает, что вы создаете задание D, которое содержит инструкции по сборке для A, B и C. Это задание будет вызвано изменениями в A, B или C.

0 голосов
/ 22 октября 2010

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

Сборка после создания других проектов "только гарантия" C запускается после A или B "(необходимы A и B)

Это означает, что C будет создаваться каждый раз, когда происходят изменения в A или B. Если A и B действительно независимы друг от друга, как вы говорите, это удовлетворяет всем зависимостям.

...