У нас есть поток сборки Jenkins, который делает это:
Начальное задание запускается для подготовки ночной сборки, а затем запускается N разных сборок проекта для параллельного выполнения. Для каждого проекта запускается одно задание для сборки двоичных файлов, а затем запускается отдельное задание для запуска тестов. После того, как все сборки проекта и тесты завершены, запускается одно задание для анализа результатов.
Финальный анализ содержит часть, которая занимает много времени и зависит только от бинарников, а не от результатов тестирования. Мы хотим запускать это параллельно с тестовыми заданиями, чтобы ускорить процесс, но мы не хотим, чтобы тесты ждали, пока все проекты закончат сборку двоичных файлов. Что-то вроде этого:
Поток сборки настраивается как массив замыканий, содержащих задания сборки и тестирования каждого проекта. Можно ли добавить задание в каждое закрытие проекта, которое запускается только в том случае, если задание сборки во всех других закрытиях завершено? Или есть задание, ожидающее достижения счетчиком определенного значения?
Решения с использованием конвейера также приветствуются.