Я пытаюсь создать сложный конвейер сборки, график зависимости показан ниже.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, я не нашел какое-либо решение для таких случаев. Поэтому мое решение в виду (я не пытаюсь):
- Создайте триггерное задание для каждого проекта, в котором проверяются только исходный код для этого проекта, поэтому у нас будет 7 заданий триггера.
- Создайте работу преобразователя зависимости для конвейера.
- Когда какое-либо из заданий триггера обнаруживает изменение, оно запускает задание зависимостей. Задание зависимостей будет знать, какой проект изменен, и определяет, что проекты могут быть пропущены в этой сборке и заданы соответствующие переменные среды. Например, когда Prj-C изменен, он устанавливает skip-proja = true, skip-projb = true, skip-projd = true, skip proj-e = true. После этого он запускает конвейер сборки.
- Когда каждый проект запущен, он проверяет, что он может быть пропущен в соответствии с переменной окружения, заданной заданием зависимостей.
Надеюсь, что я понял, пожалуйста, дайте мне знать, если есть другие решения для этого случая или ваши комментарии по моему решению. Благодаря!