2013-07-28 3 views
1

Я пытаюсь создать сложный конвейер сборки, график зависимости показан ниже.Jenkins - пропустить восходящий проект в конвейере сборки

 Prj-A 
     | 
     Prj-B 
/ | \ 
Prj-C Prj-D Prj-E 
|  |  | 
|  |  | 
|  |  | 
-------------- 
     | 
     Prj-F 

Трубопровод начинается с Prj-A, а затем Prj-B. Prj-C D E может выполняться параллельно. Когда Prj-C, D, E завершены, запустите Prj-F.

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

После многого googleing, я не нашел какое-либо решение для таких случаев. Поэтому мое решение в виду (я не пытаюсь):

  1. Создайте триггерное задание для каждого проекта, в котором проверяются только исходный код для этого проекта, поэтому у нас будет 7 заданий триггера.
  2. Создайте работу преобразователя зависимости для конвейера.
  3. Когда какое-либо из заданий триггера обнаруживает изменение, оно запускает задание зависимостей. Задание зависимостей будет знать, какой проект изменен, и определяет, что проекты могут быть пропущены в этой сборке и заданы соответствующие переменные среды. Например, когда Prj-C изменен, он устанавливает skip-proja = true, skip-projb = true, skip-projd = true, skip proj-e = true. После этого он запускает конвейер сборки.
  4. Когда каждый проект запущен, он проверяет, что он может быть пропущен в соответствии с переменной окружения, заданной заданием зависимостей.

Надеюсь, что я понял, пожалуйста, дайте мне знать, если есть другие решения для этого случая или ваши комментарии по моему решению. Благодаря!

ответ

1

Ваше решение кажется работоспособным, но в идеале вы хотите проектируемый-е, чтобы вызвать только с этой комбинацией C, D и E, что все прошло с той же версии (сборка счетчика) Б.

Для таких сложных установок , лучше использовать такой инструмент, как Go (я там работаю), который строится с учетом этих сценариев. У вас есть сценарий для поклонников, который может вызвать ложные сборки, если у вас нет инструмента, который понимает поклонник.

http://support.thoughtworks.com/entries/22229668-Go-s-Dependency-Management

http://www.thoughtworks-studios.com/go-continuous-delivery/compare

Смежные вопросы