Нужна работа Jenkins, которая сначала строит все дерево зависимостей - PullRequest
2 голосов
/ 08 апреля 2019

У меня есть проект maven, в котором есть некоторые другие проекты в качестве зависимостей, и эти зависимости могут иметь некоторые другие проекты в качестве зависимостей.

Proj1 (Proj2 как зависимость) | ----> Proj2 (Proj3 как зависимость) | ----> Proj3 (Projn как зависимость)

Итак, мне нужно создать набор заданий Jenkins, которые выполняются по очереди в соответствии с деревом зависимостей:

Job3 (работает 1-й) | ----> Job2 (Runs 2nd) | ----> Job1 (последний запуск)

Чтобы добавить к беде, у меня есть геррит в качестве инструмента обзора. За одну регистрацию у нас может быть несколько кодов проекта в качестве набора исправлений. поэтому все задания должны быть проверены последним в коде из набора исправлений во время работы, если он доступен В таком случае триггер тоже немного хитрый.

Возможно ли это? Если да, то как?

Примечание. Я не являюсь экспертом в этой области.

1 Ответ

0 голосов
/ 12 апреля 2019

Вы пытались использовать Другие задания, от которых зависит это задание , это можно найти в дополнительных параметрах триггера Gerrit. Я не играл с этим, но в соответствии с описанием ниже, он должен делать то, что вам нужно.

Вставка всех заданий, от которых это задание фактически зависит (пропускается при выполнении заданий в режиме без вывода сообщений). Если фиксация должна инициировать как зависимость, так и это задание, зависимость будет построена первой. Используйте запятые для разделения имен должностей. Остерегайтесь циклических зависимостей. Если эта опция включена, родительские сборки доступны как переменные Env для сборки

  • TRIGGER_DEPENDENCY_KEYS = "Разделенный пробелами список всех имен ключей запущенных родительских проектов"
  • TRIGGER__BUILD_NAME = "Имя сборки запущенного проекта"
  • TRIGGER__BUILD_NUMBER = "Номер сборки запущенного проекта"
  • TRIGGER__BUILD_RESULT = "Результат компоновки запущенного проекта" Имя ключа проекта создается из полного имени проекта с использованием простого регулярного выражения: replaceAll ("[^ a-zA-Z0-9] +", "_") . Таким образом, все не буквенно-цифровые символы будут заменены на «_».
...