Мне нужно построить и протестировать несколько конфигураций: Linux, OSX и Solaris. У меня есть подчиненные узлы с метками «linux», «osx» и «solaris». В каждой конфигурации я хочу (а) построить (б) запустить дымовые тесты (в) если дымовые тесты пройдены, то запустить полные тесты и, возможно, больше.
Я подумал, что ответом могут быть задания с несколькими конфигурациями, поэтому я настраиваю задание сборки с несколькими конфигурациями, и оно запускает параллельные сборки в каждой ОС. Задание сборки инициирует сборку дымового теста нижестоящего уровня, которая, в свою очередь, запускает задание полного тестирования.
Я столкнулся со следующими проблемами
Если одна из конфигураций дает сбой, задание в целом завершается сбоем, и Jenkins не запускает никакие последующие задания (например, если сборка Solaris завершается сбоем, Jenkins не запускает дымовые тесты или полные тесты для osx и linux).
Сборка Solaris занимает примерно в два раза больше времени, чем другие (порядка часа), и я бы предпочел, чтобы дымовые тесты Linux и OSX не ждали завершения сборки Solaris.
Означает ли это, что мне осталось вручную создать три конвейера заданий и поместить их за задание «начать все» (т. е. создать и вручную связать следующие задания)?
build-linux smoke-test-linux full-test-linux
build-osx smoke-test-osx full-test-osx
build-solaris smoke-test-solaris full-test-solaris
Я пропустил что-то очевидное?