Инструменты:
Jenkins ver. 1,470
Maven 2
SubversionJenkins Частичная сборка/модульная сборка на фиксаторе
Environment
Предположим, моя сборка имеет ряд проектов A-D. График зависимости существует, как показано. То есть: B зависит от классов в A, C зависит от классов в B, D зависит от классов в A. Мы создаем сборки дженкинсов, которые они называет зависящими от них строками как действие после сборки.
| -> B -> C
| -> D
Каждую ночь, мы вызываем полное построение в Дженкинс (A строит, запускает B (триггеры C), триггеры D). Это делается достаточно легко, говоря А строить ночь, а остальные каскады.
Проблема
Однако на коммит мы хотим строить проекты, которые были совершены в один раз.
Ситуация 1: Мы опрашивать хранилище (или использовать commit hooks, это не имеет никакого значения) и найти, что существует обязательство B, то B будет строить и C будут строить. Успех!
Ситуация 2: Мы опрашивать хранилище и обнаружить, что B и C были совершены в один коммит, то Дженкинс будет пытаться построить B (запуская сборку C), и построить C (второй сборки). Неисправность. Посмотрите, что произойдет? C был построен дважды, занимая драгоценное время строительства. Храните строение быстро!
Кто-нибудь знает способ только вызвать самый высокий проект в каждом совершенном трубопроводе сборки?
Я полагаю, решение будет сложным СВН крюк, который определяет высокий проект в каждом конвейере ...
- Ситуация 3: Передайте B C и D в один коммит. SVN-крючок обнаруживает, что C зависит от B. Крюк вызывает ссылки на конкретные проекты для запуска сборок для B и D.
Ловушки: очень сложный захват SVN. Имейте, чтобы поддержать трубопровод в крюке SVN.
Я чувствую, что это проблема, с которой сталкиваются другие. Есть ли плагин Jenkins, который помогает с этим?
В ситуации 2 проекты jenkins C & B смотрят на один и тот же проект svn? – thekbb